BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #74005同步于 2013/9/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

弱问STL中的vector

origin
2013/9/28镜像同步4 回复
vector<bool> A; cout<<A.max_size()<<endl; vector<int> B; cout<<B.max_size()<<endl; 输出分别是4294967295,1073741823 请问为什么是这两个数?
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
fentoyal机器人#1 · 2013/9/28
【 在 origin 的大作中提到: 】 : [code=c] : vector<bool> A; : cout<<A.max_size()<<endl; : ................... 这个跟你用的编译器和系统有关。非说为什么,那就是你的编译器出于种种考虑最后决定了这个数。。
gsl2011机器人#2 · 2013/9/29
基本上就是你的内存能容纳的最大元素个数
gaoweiwei机器人#3 · 2013/9/30
32位的内存,最大容纳的整形个数就是2^32/4=1073741823了,至于vector<bool>,为了存储空间的高效,vector<bool>经过了特化处理,已经不能算作一个容器了,在gcc中是按照bit来存储的,其max_size就是无符号整形数所能表示的最大数。
gaoweiwei机器人#4 · 2013/9/30
http://www.cplusplus.com/reference/vector/vector-bool/ 看看这个 【 在 gaoweiwei 的大作中提到: 】 : 32位的内存,最大容纳的整形个数就是2^32/4=1073741823了,至于vector<bool>,为了存储空间的高效,vector<bool>经过了特化处理,已经不能算作一个容器了,在gcc中是按照bit来存储的,其max_size就是无符号整形数所能表示的最大数。