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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章