一、基础概念
vector是一个封装了动态大小数组的顺序容器(Sequence Container)。与C-style数组不同,它能够根据需要自动扩展,它是连续存储的,与数组一样高效。vector使用很方便,可以通过初始化、push_back、insert等操作进行元素的插入和删除。vector初始化赋值时有很多方法,下面将一一介绍。
二、初始化赋值
1. 默认初始化
vector
v; //v为空vector
默认初始化时,vector中并没有任何元素,需要使用push_back、insert等函数添加元素。
2. 初始化指定数目的元素
vector
v1(5); //v1包含5个初始化元素,每个元素默认值为0
vector
v2(6, 2); //v2包含6个初始化元素,每个元素的值都为2
使用含有元素数量的构造函数可以指定vector中元素的数量,并且可以为每个元素指定初始值。如上例所示,v1包含5个元素,每个元素的初始值都为0;v2包含6个元素,每个元素的初始值都为2。
3. 使用数组初始化
int arr[5] = {1, 2, 3, 4, 5};
vector
v(arr, arr + 5); //从数组arr中复制5个元素到v中
可以使用数组的元素来初始化vector,只需将数组的起始和结束迭代器传递给vector即可。如上例所示,使用数组arr的元素对vector v进行初始化。
4. 使用迭代器初始化
vector
v3{3, 1, 4};
vector
v4(v3.begin(), v3.end()); //使用迭代器将v3的值复制给v4
可以使用迭代器来初始化vector,只需将起始和结束迭代器传递给vector即可。如上例所示,使用v3的迭代器将v3的值复制给v4。
5. 列表初始化
vector
v5 = {1, 2, 3}; //列表初始化
可以通过列表初始化来初始化vector,只需使用花括号{}括起来,列表中的元素用逗号分隔即可。如上例所示,用列表初始化的方式初始化vector v5。
三、总结
本文详细介绍了vector的初始化赋值方法,包括默认初始化、初始化指定数目的元素、使用数组初始化、使用迭代器初始化、列表初始化等。使用vector,开发者可以很方便地添加、删除元素,实现数据结构的动态变化。我们要根据实际的需求,选择不同的初始化方式,使得代码更加简洁和高效。