STL函数补充

1.multimap(可存储相同值的map)

map<int> mp;
mp.erase(3);//删除键值为3的元素  
map<int>::iterator it;
it = mp.find(2);//查找键值  
struct Info
{
    string name;
    float score;
    bool operator < (const Info& a) const//运算符重载,按score从小到大排序  
    {

        return a.score < score;
    }
};

map<Info, int> mmp;

//multimap------------允许键值相同的存在  
multimap<string, double>m;
m.insert(pair<string, double>("a", 20));
m.insert(pair<string, double>("a", 30));
m.erase("a");//删除键值等于"a"的元素  
//运用迭代器进行输出
#include <iostream>
#include <map>
using namespace std;
//multimap由于允许有重复的元素
//插入insert(pair<a,b>(v1,v2))插入两个数据关键值与映射
//删除和查找,erase(k)会删除掉所有k的map
//查找find(k)返回第一个k的迭代器
//multiset,与set不同之处就是它允许有重复的键值
//迭代器iterator、reverse_iterator
int main()
{
    multimap<string, double>mp;
    mp.insert(pair<string, double>("A", 100.2));
    mp.insert(pair<string, double>("B", 10.2));
    mp.insert(pair<string, double>("C", -40.2));
    mp.insert(pair<string, double>("D", 40.2));

    multimap<string, double>::iterator it;
    for (it = mp.begin(); it != mp.end(); it++) {
        cout << (*it).first << ": " << (*it).second << endl;
    }
    cout << endl;

    return 0;
}

2.multiset 

(也是可以允许有相同的键值)

3.dueue(双端队列)

        可以取队尾的值/可以删除队尾的值

   push_back()从队尾插入
   push_front()和insert()在首部和中间位置插入元素
   deque<int> d;  
   d.push_back(1);  
   d.push_back(2);  
   d.push_back(3);  
   d.insert(d.begin() + 1, 40); //找到插入数的地址,只能覆盖原有的数,不能增加新的数 
   cout << d[0] << d[1] << d[2] <<endl; //输出 1 40 3  
   d.erase(d.begin() + 1);//删除40  
   d.pop_front();//头部删除元素  
   d.pop_back();//尾部删除元素  
  
  

4.priority_queue(最大元素先出)

        今天是在是太累了,真的是写不下去了,如有补充和总结看接下来的博客吧,还是要坚持的,开学第一篇博客,记得运算符重载一定要看,还有一些基本的函数应用场景,加油吧,纪念第一篇开学博客!!!新的学期,加油!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钟一淼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值