priority_queue 优先队列
//默认为大根堆,即对顶是最大的
- priority_queue < T > p 如果需要用自定义比较函数,需要写成:
priority_queue<int, vector< T >, cmp > q 如:小根堆 priority_queue<int, vector, greater > q - q.push()
- q.size()
- q.top()
填坑…
set
//集合
使用好处:删除,查询比数组快
- s.begin() 返回set中第一个元素(迭代器,或者说指针)
- s.end() 最后一个的指针
- s.clear() 清空
- s.insert() 插入一个元素
- s.erase() 删除一个元素
- s.size() s.max_size()
map
//映射
-
map< T1, T2> m T1 到 T2 类型的映射 ,T1 为关键字集合
T2 为值集合 -
访问: 可以和数组一样访问,也可以用insert,如果访问的不存在,会新建一个,值为默认
-
m.count() 判断是否存在映射,m.count ( T1类型 ) 如果映射过返回 1,否则 返回 0
-
每个迭代器的first 对应 key, second 对应 value
-
clear()
-
for(map< T1, T2> :: iterator it = m.begin(); it != m.end; it++) 遍历
vector
//不定长数组
- vector < 数据类型 > vec
- push.back(x) 在数组最后方插入新元素x
- size() 获取长度
- clear() 清楚全部
- 数组全部用法
stack
//堆栈:FILO 先进后出
- 一样的声明
- 入栈:s.push(x)
- 出栈 :s.pop() 不返回栈顶的,只是删除
- s.empty() 判断栈是否为空,若是,返回true
- s.size()
queue
单向队列,先进先出
- q.push(x) x到队的末端
- q.pop() 删除队首元素
- 访问队尾:q.back() 队首: q.front()
- 判断队非空:q.empty() 空,则返回false
- q.size()