STL使用记录

1,map

对map实在不熟。。。赶紧记录一下用法吧。

后来再发现新的用法再补充吧

定义: map<int, int> m;

其中的int可以为自定义的任何类型。

m[key值类型的变量] = value值;

但是注意如果key值是自定义的结构体的话,一定要重载一下小于号的运算符。这个是map的要求,key对应的类型一定要可以比较的。

2,优先队列

定义:qriority_queue<int, vector<int>, cmp> q;

一直把这货当heap在用。

其中黑体字可以为任何类型(包括自定义类型)

cmp是自己写的比较函数,因为我一直不记得大根堆和小根堆是用哪个词,所以就干脆自己写比较函数了。

注意堆内元素是不能直接修改的,要改只能先取出来,改完再放回去。

  q.size()   返回堆中元素个数

  q.empty()   返回堆中是否为空,为空则返回true

  q.push(x)  将元素x放入堆中

  q.top()  返回堆顶元素

  q.pop()  弹出堆顶元素

3,set

  s.begin()   返回容器中的第一个元素

  s.end()    返回容器中的最后一个元素

  s.clear()  字面意思(删除容器内元素)

  s.empty()  判断容器是否为空  

  s.size()   返回容器内元素个数

       set <node> :: iterator pre = S.lower_bound(t); 返回集合中第一个大于等于t的数的位置
       set <node> :: iterator nxt = S.upper_bound(t); 返回集合中第一个大于t的数的位置

这篇文章咕了……等ww3113306好好学习一下STL再来开篇新的吧

 

原文地址:https://www.cnblogs.com/ww3113306/p/9206688.html