有没有办法单独通过类型获取向量的字节大小?

Sco*_*ott 2 c++ vector sizeof

如何预测矢量的大小?

#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是在编译时进行评估的,因此它无法知道稍后在运行时将多少元素插入到容器中.