std::string::max_size
#include <string>
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.
size_type max_size() const noexcept;
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 |