【发布时间】:2015-01-14 04:19:55
【问题描述】:
使用g++ 4.8.2 运行的以下程序在 32 位 Linux 系统上给出了输出 12:
vector<char> v;
cout << sizeof(v) << endl;
我看到this 并知道sizeof(v) 可能是特定于实现的。不过,我想知道是什么导致该向量的大小为 12。我认为迭代器 v.begin() 和 v.end() 可能会导致 8 个字节的大小。我对么?如果是,是什么导致了剩余 4 个字节的大小?如果不是,这 12 个字节是什么意思?
【问题讨论】:
-
在我的系统上它是 32 字节(开始、大小、容量、分配器,加上与迭代器范围检查相关的四个值)
-
@MattMcNabb:请您详细说明一下?
-
这就是我所知道的。一个已失效。
标签: c++ vector iterator sizeof g++4.8