Que*_*ueg -3 c++ containers vector
std::vector::size
返回一个size_t
所以我猜它最多可以容纳2 ^ 32个元素.
有没有一个标准集装箱超过可容纳多少更多的元素,例如2 ^ 64 OR的方式来调整std::vector
通过例如将"索引" unsigned long long
?
当然.编译64位程序.size_t
那将是64位宽.
但实际上,你应该做的是退后一步,并考虑为什么你需要这么大的载体.因为很可能,你没有,并且有更好的方法来解决你正在处理的任何问题.
size_t
没有预定义的大小,虽然在32位计算机上通常上限为2 32.
由于std::vector
必须为所有元素保留连续内存,因此在超出大小之前将耗尽内存.
编译64位计算机的程序,你将有更多的空间.
更好的是,重新考虑是否std::vector
合适. 为什么要直接在内存中保存数万亿个相邻对象?
考虑一下,std::map<unsigned long long, YourData>
如果你只想要大型索引并且不是真的想要存储数万亿个对象.
归档时间: |
|
查看次数: |
622 次 |
最近记录: |