一、vector的基础介绍
0、数组基础
一维数组与多维数组,是C++中最常用的系列存储工具,数组的常规使用的基础上,STL的中自带多种升级版的容器与基础函数,vector则是其中一款。
1、vector的基础概念
1.1 vector翻译为向量,但称为可变长数组或者动态数组更容易理解;
1.2 vector内部采用连续存储空间来存储元素,所以存储与操作的逻辑与数组类似,支持指定元素的快速访问和操作。
1.3 vector的元素不仅可以是int
,double
,string
,还可以是结构体(注意:结构体要定义为全局的,否则会出错)。
2、vector的适用场景
2.1 如果题目中某些数据范围不定,只用普通数组可能会超内存,针对这种情况,使用vector是个好的解决方案;
2.2 vector常用于邻接表的方式储存图,写法也非常简洁,适合图论初学者。
二、vector的功能函数与操作
1、基础函数
2、经典误区
刚开始接触vector的选手,会有一个使用数组留下的惯性误区;
请观察以下错误的遍历与操作代码:
vector<int> a;for(int i=0;i<10;i++) a[i]=i;//错误分析:刚定义的向量a,下标关系未生成,所以访问空间不合法。