multiset

c++语言中,multiset是<set>库中一个非常有用的类型,它可以看成一个序列,插入一个数,删除一个数都能够在O(logn)的时间内完成,而且他能时刻保证序列中的数是有序的,而且序列中可以存在重复的数。

简单应用:
通过一个程序来看如何使用multiset:

#include <string>
#include <iostream>
#include <set>
using namespace std;
void main(){
    intx;
    scanf("%ld",&x);
    multiset<int>h;          //建立一个multiset类型,变量名是h,h序列里面存的是int类型,初始h为空
    while(x!=0){
        h.insert(x);         //将x插入h中
        scanf("%ld",&x);
    }    
    while(!h.empty()){       // 序列非空 h.empty()==true时 表示h已经空了
        __typeof(h.begin()) c=h.begin();
                             //c指向h序列中第一个元素的地址,第一个元素是最小的元素
        printf("%ld ",*c);   //将地址c存的数据输出
        h.erase(c);          //从h序列中将c指向的元素删除
    }
}

 

对于输入数据:32 61 12 2 12 0,该程序的输出是:2 12 12 32 61。

原文链接: https://www.cnblogs.com/manamouse/p/17062642.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    multiset

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/313332

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月16日 下午12:46
下一篇 2023年2月16日 下午12:46

相关推荐