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

    xiaoxiao2023-10-06  186

    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)
    最新回复(0)