zoukankan      html  css  js  c++  java
  • set,multiset容器类型

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

    一、集和多集(set 和multiset 容器类)

    在使用set和multiset之前,先必须包含头文件<set>
    #include <set>
    在其中,set和multiset被定义为命名空间std内的class template:

     1 namespace std {  
     2     template<class T,  
     3             <class Compare = less<T>,  
     4             <class Allocator = allocator<T> >  
     5     class set;  
     6   
     7   
     8     template<class T,  
     9             <class Compare = less<T>,  
    10             <class Allocator = allocator<T> >  
    11     class multiset;  
    12 }  

    第一个template参数当做元素的value。
    第二个参数可有可无,用它来定义排序准则。缺省准则less-这是一个仿函数,以opertor<对元素进行比较,以便完成排序。
    第三个template参数可有可无,用它来定义内存模型。缺省的内存模型是allocator,由C++标准程序库提供。
    一个集合(set)是一个容器,它其中所包含的元素的值是唯一的。
    集和多集的区别是:set支持唯一键值,set中的值都是特定的,而且只出现一次;而multiset中可以出现副本键,同一值可以出现多次。

    构造:

    如:set<int,less<int> > set1;

    less<int>是一个标准类,用于形成升序排列函数对象。降序排列是用greater<int>。

  • 相关阅读:
    JavaScript等比例缩放图片
    乐器的研究
    乐器的研究
    单位的理解
    单位的理解
    那些狗,那些人
    Opencv+Zbar二维码识别(标准条形码/二维码识别)
    二维码解码器Zbar+VS2012开发环境配置
    条形码、二维码的区别和组成结构介绍
    Caffe-Windows下遇到过的问题、技巧、解决方案
  • 原文地址:https://www.cnblogs.com/csxcode/p/3720949.html
Copyright © 2011-2022 走看看