码迷,mamicode.com
首页 > 其他好文 > 详细

set,multiset容器类型

时间:2014-05-11 14:47:35      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   java   c   

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

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

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

bubuko.com,布布扣
 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 }  
bubuko.com,布布扣

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

构造:

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

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

set,multiset容器类型,布布扣,bubuko.com

set,multiset容器类型

标签:style   blog   class   code   java   c   

原文地址:http://www.cnblogs.com/csxcode/p/3720949.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!