vector.size(),vector.capacity(),sizeof(vector)的区别

来源:百度知道 编辑:UC知道 时间:2024/06/05 19:56:07
问题:vector.size(),vector.capacity(),sizeof(vector)是怎么计算的,结果跟什么有关?

环境:
gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-47)

代码:
#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
#include<list>
#include<functional>
using namespace std;

#define number 33
vector<bool> vbool(number);
vector<int> vint(number);
vector<double> vdouble(number);
vector<string> vstring(number);

int main()
{
cout << "vbool size == " << vbool.size() << endl;
cout << "vint size == " << vint.size() << endl;
cout << "vdouble size == " << vdouble.size() << endl;
cout << "vstring size == " << vstring.size() << endl;

cout << "vbool bytes == &q

vector.size()指的是vector的使用大小,比如说10个盒子,用了8个,vector.size()就等于8

vector.capacity()指的是总大小,上一个例子里,vector.capacity()等于10

sizeof(vector)取决于vector里面存放的数据类型,10个bool就是10个字节,计算起来等于vector.capacity()*单个数据类型大小