#include <iostream>
#include <cstdio>
#include <set> // 仿函数的原型
//struct greaters
//{
// bool operator()(const int &left,const int &right) const
// {
// return left>right;
// }
//}; using namespace std; int main()
{
// set容器,元素具有唯一性,但与寻常集合 不同,它是有序的
// 元素必修顺序插入,不能在指定位置插入
// 内部结构为红黑二叉树,加入数据的效率居然比vector还快?反正我信了 // list与vec的比较
//对于忘list中插入数据,很好理解,分配一个新的结点空间,添加到链表尾部即可
//对于往vectorz中添加数据,需要判断当前控件是否够用,不够用的话需要再次分配稍大的一些空间
// 然后把已有的元素拷贝到新的空间区域,然后释放已有的空间。
// 也许有人觉得这个拷贝操作很费时,觉得没有list添加的速度快,然而,事实并不是这样….. // 好了,再回归set
// insert,插入函数,重复失败,返回pair类型
// 复杂的数据类型,需要用仿函数确定元素的顺序 set<int> set1;
set1.insert();
set1.insert();
set1.insert(); for(set<int>::iterator it=set1.begin();it!=set1.end();++it)
{
cout<<*it<<' ';
}
cout<<endl; set1.erase(set1.begin()); for(set<int>::iterator it=set1.begin();it!=set1.end();++it)
{
cout<<*it<<' ';
}
cout<<endl; // 默认是从小到大的顺序
// set<int,less<int>> set1;
// 从大到小的顺序是 // set<int,greaters<int>> set2; pair<set<int>::iterator,bool> pair1=set1.insert();
cout<< *pair1.first <<endl;
if(pair1.second==true)
{
cout<<"YES"<<endl;
} pair1=set1.insert(); cout<<pair1.second<<endl; // set的数据查找
// lower_bound
// upper_bound
// equal_bound // 查找小于等于10的元素的位置
cout<<*set1.lower_bound()<<endl;
// 查找大于20的元素的位置
// 注意,这里没有等于哈
cout<<*set1.upper_bound()<<endl; for(set<int>::iterator it=set1.begin();it!=set1.end();++it)
{
cout<<*it<<' ';
}
cout<<endl; // 查找大于等于20的元素的位置
cout<<* set1.equal_range().first<<endl;
cout<<* set1.equal_range().second<<endl; // multiset ,元素可以重复,其余基本操作相似 return ;
}

STL-set&&multiset 集合的更多相关文章

  1. set multiset 集合实现众数的统计

    众数问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 所谓众数,就是对于给定的含有N个元素的多重集合,每个元素在S中出现次数最多的成为该元素的重数, 多重集合S重 ...

  2. C++STL之multiset多重集合容器

    multiset多重集合容器 multiset与set一样, 也是使用红黑树来组织元素数据的, 唯一不同的是, multiset允许重复的元素键值插入, 而set则不允许. multiset也需要声明 ...

  3. 转自http://blog.sina.com.cn/daylive——C++ STL set&multiset

    C++ STL set和multiset的使用 1,set的含义是集合,它是一个有序的容器,里面的元素都是排序好的,支持插入,删除,查找等操作,就  像一个集合一样.所有的操作的都是严格在logn时间 ...

  4. [STL]set/multiset用法详解[自从VS2010开始,set的iterator类型自动就是const的引用类型]

    集合 使用set或multiset之前,必须加入头文件<set> Set.multiset都是集合类,差别在与set中不允许有重复元素,multiset中允许有重复元素. sets和mul ...

  5. STL之multiset

    参见http://www.cplusplus.com/reference/set/multiset/ template < class T,                            ...

  6. multiset集合容器的集合运算:并、交、差

    set和multiset的内部通常是采用平衡二叉树来实现.当放入元素时,会按照一定的排序方法自动排序,默认是按照less<>排序规则来排序.这种自动排序的特性加速了元素查找的过程,但问题是 ...

  7. STL::set/multiset

    set:  Sets are containers that store unique elements following a specific order.集合里面的元素不能修改,只能访问,插入或 ...

  8. C++STL之set集合容器

    set集合容器 set集合容器实现了红黑树(Red-Black Tree)的平衡二叉检索树的数据结构, 在 插入元素时, 它会自动调整二叉树的排列, 把该元素放到适当的位置, 以确保每个子树根节点的键 ...

  9. stl之multiset容器的应用

    与set集合容器一样,multiset多重集合容器也使用红黑树组织元素数据,仅仅是multiset容器同意将反复的元素健值插入.而set容器则不同意. set容器所使用的C++标准头文件set.事实上 ...

随机推荐

  1. 【做题笔记】 P1610 鸿山洞的灯

    正解:DP 比较好写的/我用的算法:贪心 首先需要理解几个地方: 第二行输入的 \(n\) 个数字是每盏灯所在的地方.可以不按顺序,灯与灯之间的距离是个变量. 对于任意一段区间,只要是在 \(\tex ...

  2. @ComponentScan注解,basePackages参数通配符

    @ComponentScan(basePackages = "com.ofo.test")当basePackages的直使用通配符,使用**,不能使用*.引用:https://bl ...

  3. Java中的8种基本数据类型

    JAVA中的8种基本数据类型:byte short int long float double char boolean 特别说明: 1)char类型占2个字节,可以表示汉字.汉字和英文字符都占2个字 ...

  4. Educational Codeforces Round 76 (Rated for Div. 2) E. The Contest

    Educational Codeforces Round 76 (Rated for Div. 2) E. The Contest(dp+线段树) 题目链接 题意: 给定3个人互不相同的多个数字,可以 ...

  5. JS中map与forEach的区别

    很多同学可能对于map与forEach的区别不是太了解,今天我们介绍一下JS中的map与forEach方法, 我对map的理解是,这个方法对一个数组arr1中的每一个元素进行遍历(传递给一个数组,参数 ...

  6. Python3(八) 枚举详解

    一.枚举其实是一个类 建议标识名字用大写 1.枚举类: from enum import Enum class VIP(Enum):     YELLOW = 1     GREEN = 2      ...

  7. chromedriver和firefox driver的安装过程

    环境:ubuntu14.04, python2.7 selenium2.0 文章参考出处:http://blog.csdn.net/heybob/article/details/52922645 ch ...

  8. 授权认证(IdentityServer4)

    区别 OpenId: Authentication :认证 Oauth: Aurhorize :授权 输入账号密码,QQ确认输入了正确的账号密码可以登录 --->认证 下面需要勾选的复选框(获取 ...

  9. img 标签上的src 链接图片不存在时 怎么处理

    // .html <img [src]="nzSrc" *ngIf="nzSrc && hasSrc" (error)="img ...

  10. 一起了解 .Net Foundation 项目 No.6

    .Net 基金会中包含有很多优秀的项目,今天就和笔者一起了解一下其中的一些优秀作品吧. 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译.如与原文存在出入,请以原文为准. .NET Micro Fr ...