pet*_*rJk 16 c++ vector sizeof
我有一个vector<set<char> >数据结构(交易数据库),我想知道它的大小.当我使用sizeof()时,每个set<char>大小为24,尽管该组包含3,4或5个字符.后来,当我使用sizeof()时,vector<set<char> >大小为12 ...我想这不是了解数据结构大小的方法.有帮助吗?谢谢.
小智 24
你想要vector::size()和set::size().
假设v是你的向量,请执行以下操作:
size_t size = 0;
for (vector<set<char> >::const_iterator cit = v.begin(); cit != v.end(); ++cit) {
size += cit->size();
}
Run Code Online (Sandbox Code Playgroud)
sizeof()给你的是它所应用的对象/类型的内存大小,以sizeof(char)(通常是一个字节)的倍数表示.如果您想知道容器及其元素的内存大小,可以这样做:
sizeof(v) + sizeof(T) * v.capacity(); // where T is the element type
使用指向实际存储的内部指针实现Vector.因此,sizeof()将始终返回不包含数据存储本身的相同结果.请尝试使用该vector::size()方法.这将返回向量中的元素数.