C++中有这样的要求吗
sizeof(std::vector<T>) == sizeof(std::vector<S>)
Run Code Online (Sandbox Code Playgroud)
哪里S和T是任意可复制分配和可复制构造的类型?例如,在我的 64 位 Windows 笔记本电脑上,GCC我们有
sizeof(std::vector<int>) ==
sizeof(std::vector<std::tuple<std::vector<double>,
int, std::map<int, std::string> > >)
== 24
Run Code Online (Sandbox Code Playgroud)
不,不要求所有std::vector专业的规模相同。如果愿意的话,编译器可以针对不同的专业化有不同的布局和大小。
在实践中,一个例子是vector<bool>在至少一个实例中恰好给出了不同的结果:
std::cout << sizeof(std::vector<int>); // 24
std::cout << sizeof(std::vector<bool>); // 40
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |