std::vector< std::vector< std::vector<int> > > sp(1, std::vector< std::vector<int> >(1,std::vector<int>(1)));
为此3d vector 分配的内存应该是多少?
Massif显示84个字节,但是它不应该接近int(4个字节)的大小吗?
最佳答案
通常,单个std::vector
使用3个指针实现
因此,在64位平台上,当然,除了实际内容外,它至少还有3x8 = 24字节。
假设整数为4个字节,则一个带有1个整数的3d vector 将至少占据24x3 + sizeof(int)= 76个字节。如果使用8字节的整数,则将为80字节,这还不包括例如堆分配器所需的任何额外对齐。