std::deque::max_size
#include <deque>
Trả về số lượng phần tử tối đa mà deque có thể chứa, phụ thuộc vào giới hạn bộ nhớ của hệ thống hoặc thư viện.
size_type max_size() const noexcept;
Tham số
Không có tham số
Giá trị trả về
- Trả về một giá trị kiểu
size_type
, thường làstd::size_t
, là một kiểu số nguyên không dấu, đại diện cho số lượng phần tử tối đa mà deque có thể chứa. - Giá trị này thường rất lớn và phụ thuộc vào:
- Kiến trúc hệ thống (32-bit hoặc 64-bit).
- Bộ phân bổ bộ nhớ (allocator).
- Kích thước của kiểu dữ liệu lưu trữ trong deque.
Đặc điểm
max_size()
thường được sử dụng để kiểm tra giới hạn về kích thước của deque, mặc dù trong thực tế, bạn hiếm khi đạt đến giới hạn này, bạn có thể bị giới hạn bởi bộ nhớ RAM hoặc các ràng buộc khác của hệ thống trước khi đạt đếnmax_size()
. Nó mang tính lý thuyết nhiều hơn là thực hành.max_size()
được đánh dấu lànoexcept
, nghĩa là nó được đảm bảo không ném ra ngoại lệ nào.max_size()
là một hàmconst
, nghĩa là nó không thay đổi trạng thái của deque.- Giá trị trả về của
max_size()
không phụ thuộc vào số lượng phần tử hiện tại trong deque, mà phụ thuộc vào giới hạn của hệ thống. - Trong hầu hết các trường hợp, bạn không cần phải lo lắng về
max_size()
. deque được thiết kế để tự động quản lý bộ nhớ, và bạn hiếm khi đạt đến giới hạn tối đa này. - Hàm
max_size()
hữu ích trong các tình huống như:- Kiểm tra tính khả thi trước khi cố gắng phân bổ một lượng lớn phần tử.
- Hiểu giới hạn lý thuyết để thiết kế chương trình hiệu quả hơn.
- Độ phức tạp:
O(1)
- Thời gian hằng số.
Ví dụ
#include <iostream>
#include <deque>
#include <limits>
int main() {
std::deque<int> myDeque;
std::cout << "Maximum size of deque: " << myDeque.max_size() << '\n';
std::cout << "Maximum value of size_t: " << std::numeric_limits<std::size_t>::max() << '\n';
// So sánh max_size() với dung lượng tối đa của int (chỉ mang tính minh họa)
if (myDeque.max_size() > (std::numeric_limits<std::size_t>::max() / sizeof(int)))
{
std::cout << "The maximum size is limited by the size of int.\n";
} else {
std::cout << "The maximum size is limited by the system.\n";
}
return 0;
}
Các hàm liên quan
size | Lấy số lượng phần tử hiện có trong deque |
resize | Thay đổi kích thước của deque |