为什么以下代码在Visual Studio 2010的代码块13.12和20中返回12?我也很困惑为什么它返回除0以外的任何其他值,因为矢量是动态的,而且我没有回退任何元素。
#include <iostream>
#include <sstream>
#include <iomanip>
#include <string>
#include <stdio.h>
#include <vector>
using namespace std;
class c
{
public:
vector<int>v;
c()
{
v.clear();
}
};
int main() {
int m;
c ob;
cout<< sizeof(ob);
}
因为sizeof
operator会显示给定类型的对象表示形式的内存大小(以字节为单位)。考虑到vector
容器不仅包含数据(可能有计数器,指针等),而且内存中的确切大小取决于您使用的编译器的实现。
在您的情况下,有不同的编译器取决于所选的IDE:
如果您想知道内部数据的确切大小(以字节为单位),vector
则可以使用以下方法:
int vector_size = sizeof(int) * v.capacity();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句