#include <iostream>
#include<vector>
using namespace std;
bool a;
char c;
int main() {
vector<bool> bVec = { true,false,true,false,true};
vector<char> cVec = { 'a', 'b', 'c', 'd', 'e' };
cout<<sizeof( bVec );cout<<endl;
cout<<sizeof( cVec );
cout<<endl;
cout<<sizeof(a);
cout<<endl;
cout<<sizeof(c);
return 0;
}
当我编译这段代码时,我得到cVec的大小为20,bvec的大小为12。但为什么尺寸不同?
答案 0 :(得分:0)
std::vector<bool>
是std::vector
的特例,它以节省空间的方式存储数据,并返回代理对象而不是bool&
来操纵数据。因此,它通常具有与正常std::vector
不同的成员数据,因此具有大小差异。