1.什么是vector
vector是C++标准库中常用的容器之一,功能很强,可以存储管理各种数据 。可以自动管理内存大小,在运行时根据需要动态增长或缩小。并且普通的数组只能进行一对一映射,不能一对多的映射,而vector可以结局这个问题
创建vector
使用vector需要引入头文件
#include <vector>
创建一个vector对象:
示例一维vector对象
//veccto<存储类型> vector1;
//存储int
vector<int> vector1;
//存储double数据
vector<double> vector1;
//存储字符串数据
vector<string> vector1;
//存储字符数据
vector<char> vector1;
//创建二维容器
vector<vector<int>> vector1;
vector对象中如果没有数据,访问时会报错
vector的初始化:
//在定义时具体赋值,类似一维数组
vector<int> vector1 = {1,2,3,4,5};
//利用函数赋值
vector<int> vector1;
vector1.resize(num);//为vector分配num个int数据空间,值均为0
vector1.resize(num, date)'//为vector分配num个int数据空间,并全部赋值为date
//利用现有容器赋值,不能使用数组赋值
vector<int> vector1 = {1,2,3,4,5};
vector<int> vector2(vector1);//将容器1中元素复制到容器2中
//利用指针赋值
vector<int> v1 ={1,2,3,4,5};
int num[5] = {1,2,3,4,5};
vector<int> v2(num,num+5);/num与num+5分别是数据头尾指针,中间内容按顺序放入容器
vector相关的操作函数:
vector<int> v = {1,2,3,4,5};
//返回容器中亚元素个数.num=5
num = v.capacity();
num = v.size();
//访问vector中的元素
num1 = v[0];
num2 = v[1];//与数组访问方式一致
//添加元素
v.push_back(num);//只能将num添加到容器末尾
first = v.begin();//first为容器索引为0,即容器头部位置
second = v.begin()+1;//second为容器索引为1的位置
v.insert(second, 999);//在索引为1即第二个数据的地方插入数据999,原第二个数据及其后数据全部后移
//删除元素
v.pop_back();//该函数只能删除容器末尾元素
second = v.begin();
v.erase(second);//删除容器第二个位置数据
//清除容器所有数据
v.clear();