3月10号学习总结

本文深入解析了C++标准模板库(STL)中的set、multiset、map、multimap及优先队列(priority_queue)的使用方法与特性。涵盖了数据类型定义、元素插入与删除、迭代器操作、元素计数及边界查找等功能,适合初学者与进阶者参考。

接3月6号学习总结

一、set   multiset

set 和 multiset会根据特定的排序准则,自动将元素排序,两者的不同之处在于multiset可以允许元素重复而set不允许元素重复。

头文件: #include <set>

定义:set <data_type> set_name;

        如:set <int> s;      //默认由小到大排序

s.insert(elem) -- 安插一个elem副本,返回新元素位置。

s.erase(elem) -- 移除与elem元素相等的所有元素,返回被移除的元素个数。

s.erase(pos) -- 移除迭代器pos所指位置上的元素,无返回值。

s.clear() -- 移除全部元素,将整个容器清空。

迭代器:

      Set<int>::iterator it;

      For(it=s.begin();it!=s.end();++it)

         Cout<<*it<<endl;

操作:

s.size() -- 返回容器大小。

s.empty() -- 返回容器是否为空。

s.count(elem) -- 返回元素值为elem的元素的个数。

s.lower_bound(elem) -- 返回 元素值>= elem的第一个元素位置。

s.upper_bound(elem) -- 返回元素值 > elem的第一个元素的位置。

二、map   multimap

map不允许两个元素有相同的键值,但multimap可以。

头文件: #include <map>

定义:map <data_type1, data_type2> map_name;

    如:map <string, int> m;//默认按string由小到大排序

m.erase(elem) 移除键值为elem的所有元素,返回个数,对于map来说非0即1。

直接元素存取:

   m[key] = value;

   查找的时候如果没有键值为key的元素,则安插一个键值为key的新元素,实值为默认(一般0)。

三、优先队列   (priority_queue)

优先队列权大的先出;

定义:priority_queue <data_type> priority_queue_name;

  例如:priority_queue<int>q;

优先队列是权大的先出来;但是不一定单增也不一定单减;这个相当于是一个二分叉,对比上面的数,如果大的话互换位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值