Vector的初始化

vector<Elem> vec; //默认构造函数,产生一个空vector,没有任何元素
vector<Elem> vec(vec2); //拷贝构造函数,建立vec2的同型vector并成为vec2的一份拷贝(所有元素均被复制)
vector<Elem> vec = vec2;//拷贝构造函数,建立一个新的vector作为vec2的拷贝(每个元素均被复制)
vector<Elem> vec(rv);//Move构造函数,建立一个新的vector,取rvalue rv的内容(C++11), rvalue为右值引用
vector<Elem> vec = rv;//Move构造函数,建立一个新的vector,取rvalue rv的内容(C++11)
vector<Elem> vec(n);//利用元素的default构造函数生成一个大小为n的vector,值为0
vector<Elem> vec(n, elem);//建立一个大小为n的vector,每个元素值都是elem
vector<Elem> vec(begin, end);//建立一个vector,以区间作为元素初值

示例:

int a[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
vector<int> vec(a, a + 10);

vector<Elem> vec(initializer_list_t);//建立一个vector,以初值列表的元素作为初值(C++11)

示例:

initializer_list<int> list_t = { 1, 2, 3, 4, 5, 6, 7, 8 };
	vector<int> vec(list_t);

vector<Elem> vec = initializer_list_t;//建立一个vector,以初值列表的元素作为初值(C++11)
//vec.~vector();//毁掉所有元素,释放内存









猜你喜欢

转载自blog.csdn.net/qq_33408113/article/details/80520645