STL

standard template library, 标准模板库。常见的容器有: vector, map, queue, stack, pair, set等
类似于指针,STL可以通过迭代器访问某个容器的某个元素。

优先权队列

priority_queue\<T>

优先权队列对基本类型默认是值大的优先权大

int, char, string等,都可以比较大小。

//值小的优先权小
priority_queue<int, vector<int>, greater<int>> q;

//值大的优先权大
priority_queue<int, vector<int>, less<int>> q;
对非基本类型需要重载运算符

对于非基本类型使用优先权队列时(struct,class),要重载小于运算符

map

map<键值,映射值>
map是STL的重要容器之一,是一个可以达到一一映射效果的数据结构。
用起来很慢的,,,也占巨大的空间

map里的键值,映射值都是默认从小到大排好评的。

//一般使用方法
map<int, int> mp;
mp[10] = 5;                 //执行此句之前,mp[10]不存在(注意是不存在,不是为0),执行后自动为10提供映射值
cout << mp[10] << endl;     // 5

//对map里的每一对<键值,映射值>进行访问
map<int, int>::iterator i = mp.begin();
i++;            //该语句可将迭代器i移动到下一位
i->first;       //访问键值
i->second;      //访问映射值

//count()函数
mp.count(50);               //检查mp是否有50这个键值,范围类型为 bool

//
unordered_map

当不需要其键值或者映射值按特定方式排序时,最好使用unordered_map,仅通过键值快速访问映射值(常量时间复杂度)。
其余的使用方法同map

分类: C++STL

0 条评论

发表评论

邮箱地址不会被公开。