vector基本操作:
1.头文件 #include<vector>。 注:一定要加上using namespace std;
2.vector对象的创建: vector<int/char/string/基本数据类型/自定义类型/结构体类型/.....>vec ; (以下以int类型为例)
3.vector对象尾部插入数据: vec.push_back(a); 注意: vector对象的下标从0开始!!!!!
4.vector对象尾部删除数据: vec.pop_back(a);
5.vector中定位函数: vec.at(i); //相当于vec[i];
6.vector中第一个元素的指针: vec.begin();
7.vector中最后一个元素+1的指针:vec.end();
8.vector中得到第一个元素的值: vec.front();
9.vector中得到最后一个元素的值: vec.back();
10.判断vector是否为空: vec.empty();
11.交换vector两个容器的值: vector<int>a.swap(vec);
12.vector对象的访问:vec[0],vec[1],vec[2]..............
使用迭代器访问vector中的元素
vector<int>::iterator it; for(it=vec.begin();it!=vec.end();it++) cout<<*it<<endl; //遍历所有元素~
13.vector元素的插入: vec.insert(vec.begin()+i,a); 在第 i+1 个元素前面插入a.
14.vector元素的删除: vec.erase(vec.begin()+2); 删除逻辑上的第3个元素,即vec[2],且后面元素自动前移一个位置。
vec.erase(vec.begin()+i,vec.begin()+j); 删除区间[i,j-1]的元素;
15.vector中元素的个数: int count = vec.size();
16.vector对象的清空: vec.clear();
17.vector中元素的翻转:reverse(vec.begin(),vec.end()); 注:reverse()函数需要头文件 #include<algorithm>
18 .vector中元素的排序:
#include <algorithm> bool cmp(int a,int b){ return a>b; } sort(vec.begin(),vec.end()); // 按升序排序 sort(vec.begin(),vec.end(),cmp); // 按降序排序
19.vector中元素的去重:
1 //在STL中unique函数是一个去重函数, unique的功能是去除相邻的重复元素(只保留一个),其实它并不真正把重复的元素删除, 2 //是把重复的元素移到后面去了,然后依然保存到了原数组中,然后 返回去重后最后一个元素的地址, 3 //因为unique去除的是相邻的重复元素,所以一般用之前都会要排一下序 4 #include <iostream> 5 #include <vector> 6 #include <algorithm> 7 using namespace std; 8 int main() 9 { 10 int a[9]= {0,1,2,3,4,8,9,3,5}; 11 vector<int> vec(a,a+9); 12 13 sort(vec.begin(), vec.end()); //一定要排序!!!!!! 14 vector<int>::iterator iter = unique(vec.begin(),vec.end()); 15 vec.erase(iter,vec.end()); 16 for( iter = vec.begin() ; iter != vec.end() ; iter ++ ) 17 cout<<*iter<<" "; 18 return 0; 19 }
参考 http://www.cnblogs.com/wang7/archive/2012/04/27/2474138.html
来源:https://www.cnblogs.com/LGJC1314/p/6680054.html