vector初始化报错cannot be initialized with an initializer list
c++ 98中不允许在初始化vector容器时指定初始化元素值,如下:
vector<int> vec_i = {1,2,3,4}
编译会报错,如下:
error: non-aggregate type 'vector<int>' cannot be initialized with an initializer list
但是c++ 11中是允许这样操作的。
vector容器的初始化方式:
//默认初始化,不带参数的构造函数初始化
vector<int> vec_i;
//带参数的构造函数初始化
vector<int> vec_i(10); //初始化10个默认值为0的元素
vector<int> vec_i(10,1);//初始化10个值为1的元素
//通过数组地址初始化
int a[5]={1,2,3,4,5}
vector<int> vec_i(a,a+5);
//通过同类型的vector进行初始化
vector<int> vec_i1(10,1);
vector<int> vec_i2(vec_i1);
//通过迭代器进行初始化
vector<int> vec_i1(10,1)
vector<int> vec_i2(vec_i1.begin(),vec_i1.end()-1)
还没有评论,来说两句吧...