multiset用法

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

 

简单的运用:

int main()
{
    //freopen("../in.txt","r",stdin);
    int x;
    scanf("%d",&x);
    multiset<int> h;
    while (x!=0) // 插入数
    {
        h.insert(x);
        scanf("%d",&x);
    }
    while (!h.empty())
    {
        auto c = h.begin();  // 按升序输出
        printf("%d\n",*c);
        h.erase(c);
    }
    return 0;
}

 

放入自定义的数据类型

 

struct new_type{
    int x;
    int y;
};
multiset<new_type> h;

但是这种写法的multiset其实是没有意义的,因为它不知道根据什么样的一个顺序进行排列

 

我们可以定义一个比较类cmp,cmp内部的operator函数的作用是比较new_type类型a和b的大小(以x为第一关键字,y为第二关键字):

struct new_type{
    int x;
    int y;
};

struct cmp{
    bool operator()(const new_type&a,const new_type&b)
    {
        if (a.x != b.x)
            return a.x<b.x;
        else
            return a.y<b.y;
    }
};
multiset<new_type,cmp> h;

 

multiset的函数

因为是<set>的一部分,所以multiset的大多数操作函数都和set一样

这里只将几个比较容易弄错的

 

 

转载于:https://www.cnblogs.com/-Ackerman/p/11268685.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Almeza MultiSet可通过软件安装管理器将常用程序集成到一起,它先录制软件的安装过程,下次安装同一软件时就会采用“回放”的方式,只需轻轻一点,即可实现软件的全自动安装,从而避免输入用户名、序列号和点击下一步的麻烦。以全自动安装QQ为例,看看它是如何实现软件全自动安装的。   1.安装Almeza MultiSet后启动程序,默认情况下程序界面为英文。单击菜单栏的Service→options命令打开选项窗口,单击Select the language of the program interface(选择程序界面语言)下拉列表,从中选择Chinese:simplified,单击OK按钮即可将界面汉化。   2.启动MultiSet,在程序左侧窗格中是欲自动安装的软件类别,默认情况下有3个,右侧窗格中是程序列表,默认情况下有1个例子。为符合使用习惯,首先将左侧窗格中的Multimedia修改为“多媒体工具”,Internet修改为“网络工具”,Utilities修改为“系统工具”,方法是在相应的选项上单击右键,选择“重命名”。最后再在右侧窗格的例子上右键单击,选择“删除”。这样程序就好比是一张白纸了,你可以在其上画最美最真的画。   3.为了方便以后软件安装管理,可为应用软件建立分类。在“类别”标签上右键单击,选择“新类别”,在弹出的对话框中命名类别。在左侧窗格中选择一个类别,如“网络工具”。   4.在右侧窗格中右键单击,选择“新建记录包”命令,在弹出的对话框中选择安装程序的位置和名称。单击“可执行文件”文本框后面的“浏览”按钮,打开已经下载回来的QQ安装程序,“名称”文本框会自动填充。为方便记忆,可以在“描述”文本框中输入描述信息,如“安装QQ Beta3”,最后单击“确定”按钮。   5.这时会出现程序的录制界面和QQ安装程序向导,一步步安装QQ完成后,单击录制窗口中的停止按钮,完成QQ自动化安装的录制工作。   6.重复上面的操作,为每一个常用的软件都录制一个安装过程。录制了软件的安装过程后,必须保证软件的安装程序源位置不再更改,否则会找不到软件的安装文件而无法实现将来的自动安装。   7.需要全自动安装时,启动MultiSet,选中需要安装的软件,即将软件选项前打上对钩。单击菜单栏的“服务→安装”,MultiSet就会全自动地一一将软件安装到位。   小提示:如果需要将MultiSet中的所有程序安装到位,那么直接选择“安装所有”即可

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值