vector

*相当于一个没有大小限制的数组,数组的加强版;
主要的并且常用的操作
以 vector < int >v; 为例;

  1. v.begin();
  2. v.end();
  3. v.push_back();
  4. v.pop_back();
  5. v.size();
  6. v.empty();
  7. v.front();
  8. v.back();
  9. 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; 为例

  1. lst.begin();
  2. lst.end();
  3. lst.front();
  4. let.back();
  5. lst.insert();
  6. lst.erase();
  7. lst.push_back();
  8. lst.pop_back();
  9. lst.push_front();
  10. lst.pop_front();
  11. lst.reverse();
  12. lst.size();
  13. lst.swap();
  14. lst.unique() 删除lst中重复的元素;
  15. lst.sort();

stack

相当于一个栈,先进后出;

  1. empty();
  2. size();
  3. top();
  4. push();
  5. pop();

queue

  1. push();
  2. pop();
  3. size();
  4. front();
  5. empty();

优先级队列

#include
priority_queue < int > q; 默认从大到小
priority_queue<int,vector< int >,greater< int > >p 从小到大

  1. push();
  2. pop();
  3. top();
  4. back();
  5. empty();
  6. size();

set 与multiset(可以有重复元素)

set<int>V;
  1. set 中的元素是排序好的;
  2. set 中没有重复的元素;
  3. insert();
  4. begin();
  5. end();
  6. 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);