【发布时间】:2014-02-12 23:31:10
【问题描述】:
我想获取向量中包含的类型的sizeof。这是我尝试过的:
#include <iostream>
#include <vector>
int main()
{
std::vector<uint> vecs;
std::cout << sizeof(vecs.value_type) << std::endl;
return 0;
}
据我了解,这应该是正确的。但是,当使用 GCC 4.8.1 编译时,我得到的是:
test-sizeof.cpp:在函数“int main()”中: test-sizeof.cpp:7:27:错误:“std::vector::value_type”的使用无效 std::cout 我做错了什么?如何获取包含类型的大小?
【问题讨论】:
-
使用
std::vector<uint>::value_type -
sizeof(std::vector<uint>::value_type)或sizeof(decltype(vecs)::value_type)。 -
为什么不简单地
sizeof(vecs[0])? -
@HagenvonEitzen 即使向量的元素为零,这也能工作吗?
-
是的,因为不计算操作数。 (是的,我迟到了。:|)
标签: c++ c++11 vector sizeof value-type