初始化C++向量的"最佳"方法是什么?

use*_*799 1 c++ arrays vector

我的问题是这里的C++纯粹主义者.我知道Bjarne Stroustrop希望我们养成使用C++载体的习惯:http://www.youtube.com/watch?v = YQs6IC-vgmo

对于C风格的数组,您可以:

int arr[] = {69, 2, 3};
Run Code Online (Sandbox Code Playgroud)

初始化C++向量的等效方法是什么?也就是说,当您使用C++进行编程并需要一个动态的随机访问容器并且您已经知道其中需要包含的一些元素时,初始化该sucker的最佳方法是什么?

显然你可以做到

int myints[] = {16,2,77,29};
std::vector<int> fifth (myints, myints + sizeof(myints) / sizeof(int) )
Run Code Online (Sandbox Code Playgroud)

但那不是很优雅......

Che*_*Alf 5

C++ 11语法:

vector<int> arr = {69, 2, 3};
Run Code Online (Sandbox Code Playgroud)

就这样.

花括号initalizer生成一个std::initializer_list<int>,然后传递给std::vector构造函数.