本人没学过c++,只学过c语言,近期在刷剑指offer,里边频繁出现vector这一c++的概念,特意总结下来,帮助类似的朋友学会vector的使用,只要会了他,没学过c++也可以刷大多数c++的题。
首先,先来简单介绍vector
vector是向量类型,可以容纳许多类型的数据,因此也被称为容器,可以理解为动态数组
下面开始,
一.vector的依赖
一般编程题是直接写函数,不考虑依赖什么,但为了便于本地调试,还是要会的
两个方面,一个头文件,一个命名空间
#include<vector>
using namespace std;
在本地使用vector,务必把这两个加在程序头
二.初始化
1.直接初始化,不设置长度
vector<int> a;
2.,设置长度,比如定义具有10个整型元素的向量(尖括号为元素类型名,它可以是任何合法的数据类型)
vector<int>a(10);
请注意,此时里边的值默认为0
3.赋初值,此时里边的值是按照你设定的值赋值
//定义具有10个整型元素的向量,且给出的每个元素初值为1
vector<int>a(10,1);
4. 二维数组的初始化,参照一维的,就是个组合,把值换成了一维数组,如:
vector<vector<int>> vec(10, vector<int>());//初始层数,赋值
三:添加值的方法
- 如果初始化没有确定长度
使用push_back(x)进行添加,添加在末尾
2.如果确定了长度,
在长度范围之内,要使用类似a[i]来赋值,
如果i越界也是可以赋值的,但最好别这样做,即使在末尾赋值,长度不会变化
此时不要使用push_back(x),使用的话就加在了vector的末尾,同时会使得整体长度+1
四,删除末尾的值
pop_back(x)
五,其他常用函数
获取长度 a.size();特别常用,务必牢记,区分与c++数组长度a.length()
判断是否空 a.empty();
翻转 reverse(a.begin(),a.end());