vector初始化报错cannot be initialized with an initializer list

系统管理员 2024-04-18 21:34 165阅读 0赞

c++ 98中不允许在初始化vector容器时指定初始化元素值,如下:

  1. vector<int> vec_i = {1,2,3,4}

编译会报错,如下:

  1. error: non-aggregate type 'vector<int>' cannot be initialized with an initializer list

但是c++ 11中是允许这样操作的。

vector容器的初始化方式:

  1. //默认初始化,不带参数的构造函数初始化
  2. vector<int> vec_i;
  3. //带参数的构造函数初始化
  4. vector<int> vec_i(10); //初始化10个默认值为0的元素
  5. vector<int> vec_i(10,1);//初始化10个值为1的元素
  6. //通过数组地址初始化
  7. int a[5]={1,2,3,4,5}
  8. vector<int> vec_i(a,a+5);
  9. //通过同类型的vector进行初始化
  10. vector<int> vec_i1(10,1);
  11. vector<int> vec_i2(vec_i1);
  12. //通过迭代器进行初始化
  13. vector<int> vec_i1(10,1)
  14. vector<int> vec_i2(vec_i1.begin(),vec_i1.end()-1)

发表评论

表情:
评论列表 (有 0 条评论,165人围观)

还没有评论,来说两句吧...

相关阅读