vector初始化有什么不同

时间:2014-05-26 02:55:43

标签: c++11 initializer-list

我已经阅读了一些有关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?

1 个答案:

答案 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>