pair
位于头文件<iostream>
中用来表示一个二元组或元素对
使用pair
定义一个pair对象表示一个平面面坐标点:
pair<double, double> p;
cin >> p.first >> p.second;
pair模版类需要两个参数:首元素的数据类型和尾元素的数据类型。pair模版类对象有两个成 员:first和second,分别表示首元素和尾元素。 向上述q中存入数据需要用到q.make_pair(first,second)
; 对pair排序默认先为first,后second,如果需要先对second排序,需要设一个比较函数
int cmp(pair<int ,int > a,pair<int,int>b){
return a.second > b.second;
}
set
使用set
1 | /* |
vector
vector的基本操作:
1 | /* |
string
string 可以赋值给char,但是char不能赋值给string string使用:
1 |
|
stack
1 | /* |
queue
下列表格中带*
表示括号内无内容 否则括号内需要填要操作的元素 比如:
- name.pop()
- name.push(1)
DateType
为任意数据类型
名字 | 普通队列 | 双端队列 | 优先队列 |
---|---|---|---|
头文件 | #include<queue> | #include<deque> | #include<queue> |
声明 | queue<DateType> name | deque<DateType> name | priority_queue <DateType> name (默认 从小到大排序) |
取出队首的值 | name.front() | name.front(),name.back() | name.top() |
弹出元素(删掉,不取值) | name.pop () | name.pop_back ()-> 弹出队尾 name.pop_front ()-> 弹出队首 | name.pop () |
存入元素 | name.push() | name.push_back ()-> 存入队尾 name.push_front ()-> 存入队首 | name.push() |
求队列中元素个数 | name.size () | name.size () | name.size () |
其中,优先队列还能够自定义优先级 这时我们可以传入一个比较函数
struct cmp{
bool operator ()(int &a,int &b){
return a<b;
}
};
priority_queue<int, vector<int>,cmp > Queue;
其中 第二个参数为容器类型 第三个参数为比较函数
map
map为一个映射,相当于python中的字典 可以将map看作是由Key标识元素的元素集合,这类容器器也被称为“关联容器”,可以通过一个Key值来快速决定一个元素,因此非常适合于需要按照Key值查找元素的容器
1 |
|