| 容器 | max_size() | 十六進位 | 說明 |
|---|---|---|---|
| vector | 1,073,741,823 | 0x3FFFFFFF | 2^30 - 1 |
| list | 357,913,941 | 0x15555555 | ≈ 2^32 / 12 (節點大小約 12 bytes) |
| string | 4,294,967,294 | 0xFFFFFFFE | 2^32 - 2 (size_type 最大值保留 npos) |
size_t (32 位系統 32 bits, 64 位系統 64 bits)。理論上限 = 2^N - 1。max_size() = SIZE_MAX / sizeof(node)。vector 元素緊湊,list 有指標開銷,故較小。allocator_traits::max_size() 可能更嚴格。npos = -1,故最大長度為 SIZE_MAX - 1。無關**。由 編譯器、標準庫實作、作業系統位元數 決定。同一編譯器同平台下,任何硬體跑出的 max_size() 相同。
64 位下 size_t 為 64 bits,max_size() 達天文數字 (約 10^18),實際受限於記憶體大小。
max_size() 是理論上限,非實際可分配大小。32 位系統受位址空間限制,vector 約 1G 元素,list 約 3.5 億節點。實際使用受限於 available_memory / element_size。