std::string::max_size
#include <string>
size_type max_size() const noexcept;
Trả về số lượng ký tự tối đa mà một đối tượng std::string có thể chứa. Giá trị này bị giới hạn bởi kiểu size_type
và các yếu tố khác như kiến trúc hệ thống, bộ nhớ khả dụng, và implementation của thư viện chuẩn.
Tham số
Không có tham số
Giá trị trả về
size_type
- Một kiểu số nguyên không dấu (thường là std::size_t) đại diện cho số lượng ký tự tối đa mà chuỗi có thể chứa.
Đặc điểm
- Giá trị trả về của
max_size()
thường rất lớn và trong hầu hết các trường hợp, bạn sẽ không bao giờ đạt đến giới hạn này trong các ứng dụng thực tế. max_size()
trả về số lượng ký tự, không phải số byte.- Giá trị của
max_size()
phụ thuộc vào implementation của thư viện chuẩn, kiến trúc hệ thống, và bộ nhớ khả dụng. max_size()
khác vớicapacity()
.capacity()
trả về dung lượng bộ nhớ hiện tại đã được cấp phát cho chuỗi, trong khimax_size()
trả về giới hạn kích thước tối đa về mặt lý thuyết.- Việc cố gắng tạo một chuỗi có kích thước vượt quá
max_size()
sẽ dẫn đến ngoại lệ std::length_error. max_size()
trả về một giá trị cố định cho mỗi kiểu std::string cụ thể (ví dụ: std::string, std::wstring,...) và không thay đổi trong suốt quá trình chạy chương trình.- Hàm
max_size()
được chỉ định lànoexcept
(từ C++11), nghĩa là nó được đảm bảo không ném ra ngoại lệ. max_size()
thường được sử dụng để:- Kiểm tra giới hạn kích thước tối đa của chuỗi trên một hệ thống cụ thể.
- Ước lượng khả năng lưu trữ của chuỗi.
- Sử dụng trong các trường hợp cần kiểm tra ràng buộc về kích thước chuỗi (ít gặp trong thực tế).
Ví dụ
#include <iostream>
#include <string>
#include <limits>
int main() {
std::string str;
std::cout << "Maximum size of a std::string: " << str.max_size() << std::endl;
// So sánh với giới hạn của size_t
std::cout << "Maximum value of size_t: " << std::numeric_limits<std::size_t>::max() << std::endl;
return 0;
}
Các hàm liên quan
capacity | Trả về dung lượng bộ nhớ hiện tại được cấp phát cho chuỗi |
size | Trả về số lượng ký tự hiện có trong chuỗi |
resize | Trả về số lượng ký tự tối đa mà một đối tượng std::string có thể chứa |