C 中是否有要求
sizeof(std::vector<T>) == sizeof(std::vector<S>)
在哪里S以及T是任意可復制分配和可復制構造的型別?例如,在我的 64 位 Windows 筆記本電腦上,GCC我們有
sizeof(std::vector<int>) ==
sizeof(std::vector<std::tuple<std::vector<double>,
int, std::map<int, std::string> > >)
== 24
uj5u.com熱心網友回復:
不,不要求所有std::vector專業的規模相同。如果需要,允許編譯器針對不同的專業化具有不同的布局和大小。
在實踐中,一個例子是vector<bool>恰好在至少一個實體中給出不同的結果:
std::cout << sizeof(std::vector<int>); // 24
std::cout << sizeof(std::vector<bool>); // 40
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/417712.html
標籤:
