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)