STL-set&&multiset 集合
#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 集合的更多相关文章
- set multiset 集合实现众数的统计
众数问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 所谓众数,就是对于给定的含有N个元素的多重集合,每个元素在S中出现次数最多的成为该元素的重数, 多重集合S重 ...
- C++STL之multiset多重集合容器
multiset多重集合容器 multiset与set一样, 也是使用红黑树来组织元素数据的, 唯一不同的是, multiset允许重复的元素键值插入, 而set则不允许. multiset也需要声明 ...
- 转自http://blog.sina.com.cn/daylive——C++ STL set&multiset
C++ STL set和multiset的使用 1,set的含义是集合,它是一个有序的容器,里面的元素都是排序好的,支持插入,删除,查找等操作,就 像一个集合一样.所有的操作的都是严格在logn时间 ...
- [STL]set/multiset用法详解[自从VS2010开始,set的iterator类型自动就是const的引用类型]
集合 使用set或multiset之前,必须加入头文件<set> Set.multiset都是集合类,差别在与set中不允许有重复元素,multiset中允许有重复元素. sets和mul ...
- STL之multiset
参见http://www.cplusplus.com/reference/set/multiset/ template < class T, ...
- multiset集合容器的集合运算:并、交、差
set和multiset的内部通常是采用平衡二叉树来实现.当放入元素时,会按照一定的排序方法自动排序,默认是按照less<>排序规则来排序.这种自动排序的特性加速了元素查找的过程,但问题是 ...
- STL::set/multiset
set: Sets are containers that store unique elements following a specific order.集合里面的元素不能修改,只能访问,插入或 ...
- C++STL之set集合容器
set集合容器 set集合容器实现了红黑树(Red-Black Tree)的平衡二叉检索树的数据结构, 在 插入元素时, 它会自动调整二叉树的排列, 把该元素放到适当的位置, 以确保每个子树根节点的键 ...
- stl之multiset容器的应用
与set集合容器一样,multiset多重集合容器也使用红黑树组织元素数据,仅仅是multiset容器同意将反复的元素健值插入.而set容器则不同意. set容器所使用的C++标准头文件set.事实上 ...
随机推荐
- Node——request使用代理
本文知识点 Node环境搭建 使用代理 进阶学习 环境配置 Node 安装request 安装request npm install request 确认环境安装无误 node -v 代码样例 使用代 ...
- Codeforces_734_D
http://codeforces.com/problemset/problem/734/D 保存最近的八个方向的点,判断即可. #include<iostream> #include&l ...
- 1. 学习Linux操作系统
1.熟练使用Linux命令行(鸟哥的Linux私房菜.Linux系统管理技术手册) 2.学会Linux程序设计(UNIX环境高级编程) 3.了解Linux内核机制(深入理解LINUX内核) 4.阅读L ...
- java架构之路-(微服务专题)nacos集群精讲实战
上次回顾: 上次博客,我们主要说了微服务的发展历程和nacos集群单机的搭建,单机需要-m standalone启动,集群建议使用nginx做一下反向代理,自行保证mysql和ngxin的高可用. 本 ...
- 一本彻底搞懂MySQL索引优化EXPLAIN百科全书
1.MySQL逻辑架构 日常在CURD的过程中,都避免不了跟数据库打交道,大多数业务都离不开数据库表的设计和SQL的编写,那如何让你编写的SQL语句性能更优呢? 先来整体看下MySQL逻辑架构图: M ...
- 学习CSS之用CSS实现时钟效果
一.机械时钟 1.最终效果 用 CSS 绘制的机械时钟效果如下: HTML 中代码结构为: <body> <div class="clock"> ...
- 卫星轨道相关笔记SGP4
由卫星历书确定卫星轨道状态向量 卫星历书的表示方法有2种: TLE(Two Line Element),和轨道根数表示方法 由卫星历书计算出卫星轨道状态向量的方法有2种: SGP方法,NORAD的方法 ...
- Linux恢复删除的文件
linux恢复删除的文件 先介绍下一些文件的基本概念: · 文件实际上是一个指向inode的链接, inode链接包含了文件的所有属性, 比如权限和所有者, 数据块地址(文件存储在磁盘 ...
- Blazui 常见问题:我更新了数据,为什么界面没刷新?
首发于:http://www.blazor.group:8000/topic/reply?tpid=9 开门见山,不介绍,不废话 建议食用本文前先食用 https://www.cnblogs.com/ ...
- cesium结合geoserver利用WFS服务实现图层新增(附源码下载)
前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...