我已经阅读了一些有关C ++ 11初始化列表,统一初始化以及其他一些内容的内容。但我仍然对他们的不同感到困惑。请在下面查看它们之间的区别。谢谢!
std::vector<int> a1({1, 2, 3, 4});
// this is initialize list a object, then copy-constructor?
std::vector<int> a2{1, 2, 3, 4};
// this is initialize list
std::vector<int> a2{{1, 2, 3, 4}};
// what is this?
答案 0 :(得分:0)
std::vector<int> a1({1, 2, 3, 4});
std::vector<int> a2{1, 2, 3, 4};
std::vector<int> a2{{1, 2, 3, 4}};
所有3行都做同样的事情:
编译器创建std::initializer_list<int>
然后将其传递给std::vector<int>
的构造函数,该构造函数需要std::initializer_list<int>
。