我用容器做题目的时候有时候会混淆不同容器的用法,所以想以笔记形式记录一下,让自己头脑清醒一点。
一:vector介绍
- vector是向量类型也是顺序容器,具有随机存取的特点。
- 头文件为<vector>
- 写法:vector<elemtype>name;
- 可以当成动态数组
二:基本使用
- front() : 返回容器的第一个元素;可以直接输出v.front()也可以赋值再输出;
- back() : 返回容器最后一个元素;可以直接输出v.back()也可以赋值再输出;
- push_back() :向容器的尾部添加元素;例如:v.push_back(3);
- pop_back() :删除容器尾部的元素,例如:v.pop_back();
- assign() : 用于初始化容器,v.assgin(4,2)表示v里有4个2;v.assgin(b) 表示将b内的元素给a;v.assgin(b.begin(),b.end()) 也是同样;(可以拿数组进行赋值)
- insert() : 在指定位置插入元素;例如:v.insert(v.begin(),2222) 表示在第一个位置前面插入2222;v.insert(v.begin()+3,5555) 表示在下标为3的元素前面插入5555;v(v.begin()+i) 表示在下标为i的元素前面插入某元素(下标从0开始);
- erase() : 删除某个元素或某个范围的元素;例如:v.erase(begin()) 表示删除第一个元素;v.erase(v.begin()+1,v.begin()+3) 表示删除从下标为1的开始到下标为3(不包括这个下标为3的元素)结束;(左闭右开)
- clear() : 清空容器内的元素,例如:v.clear();
- empty() : 判断容器内元素是否为空,空就返回true,非空返回false; 例如:v.empty();
- size() : 返回容器中元素个数;例如:v.size();
- capacity() :返回容器的容量;例如:v.capacity();
- resize() : 改变容器的现有元素个数,如果原来个数不够就补0,多了就把多余的部分删除;例如:v.resize(100) ;v.resize(100,2) 表示将元素个数改变为100,如果少了就补2;(不是改变容量,而是现有的元素个数)
- reserze() :改变容器的容量;例如:v.reserze(100);
- swap() : 交换两个容器内的所有元素;例如:v.swap(b);
- 访问可以用下标,例如:v[0] 访问第一个元素 ; 但是赋值不可以用下标;