vector
*相当于一个没有大小限制的数组,数组的加强版;
主要的并且常用的操作
以 vector < int >v; 为例;
- v.begin();
- v.end();
- v.push_back();
- v.pop_back();
- v.size();
- v.empty();
- v.front();
- v.back();
- v.at();
10.v.clear();
v.erase();
用 vector 创建一个二维数组,实现输入与输出
vector<vector<int> >array;
vector<int>v;
int temp = 0;
int m, n;
cin >> m >> n;
for (int i = 0; i < m; i++) {
v.clear();
for (int j = 0; j < n; j++) {
cin >> temp;
v.push_back(temp);
}
array.push_back(v);
}
for (int i = 0; i < m; i++) {
for(int j = 0; j < n; j++) {
cout << array[i][j] << " ";
}
cout << endl;
}
list
相当于一个双向链表,
以 list lst; 为例
- lst.begin();
- lst.end();
- lst.front();
- let.back();
- lst.insert();
- lst.erase();
- lst.push_back();
- lst.pop_back();
- lst.push_front();
- lst.pop_front();
- lst.reverse();
- lst.size();
- lst.swap();
- lst.unique() 删除lst中重复的元素;
- lst.sort();
stack
相当于一个栈,先进后出;
- empty();
- size();
- top();
- push();
- pop();
queue
- push();
- pop();
- size();
- front();
- empty();
优先级队列
#include
priority_queue < int > q; 默认从大到小
priority_queue<int,vector< int >,greater< int > >p 从小到大
- push();
- pop();
- top();
- back();
- empty();
- size();
set 与multiset(可以有重复元素)
set<int>V;
- set 中的元素是排序好的;
- set 中没有重复的元素;
- insert();
- begin();
- end();
- size();
map与multimap(可以有重复元素)
自动建立key-value的对应,key和value可以是任意你需要的类型,包括自定义类型;
map<int,string> mapStudent;
3种插入方式;
1. mapStudent.insert(pair<int,string>(000,"student_zero"));
2. mapStudent[123]="student_first";
3. mapStudent.insert(map<int,string>::value_type(001,"student_one"));
pair
1. pair<int ,double> p1;
2. pair<int,int> p(5,6);
3. pair<int,int>p1=make_pair(5,6);
4. p1.first=1; p1.second=2.4;
5. p1=make_pair(1.2.4);