如何预测矢量的大小?
#include <vector>
#include <iostream>
using namespace std;
int main() {
cout << sizeof(vector<char[8]>) << endl;
cout << sizeof(vector<char[16]>) << endl;
return 0;
}
[starlon@localhost LCDControl]$ ./test
12
12
Run Code Online (Sandbox Code Playgroud)
Gre*_*ill 12
由于vector<>它本身是一个自己进行动态内存管理的类,因此使用sizeof运算符来询问它的大小并不是非常有意义.我怀疑你会发现你上面计算的值总是12.
您可以使用该.size()方法向向量询问它包含的元素数量.此外,该.capacity()方法将告诉您它实际为内存分配了多少元素(即使它们尚未全部使用).
请记住,它sizeof是在编译时进行评估的,因此它无法知道稍后在运行时将多少元素插入到容器中.