STL set集合用法总结(multiset)
2017-08-20 15:21:31
writer:pprp
set集合容器使用红黑树的平衡二叉树检索树,不会将重复键值插入,检索效率高 logn
检索使用中序遍历,所以可以将元素从小到大排列出来
/*
name : usage of Set
writer : pprp
declare : null
date ; 2017/8/20
*/
#include <bits/stdc++.h> using namespace std; void print(set<int> &s)
{
set<int>::iterator it;
for(it = s.begin(); it != s.end(); it++)
{
cout << *it <<" ";
}
cout << endl;
} void printms(multiset<int> &ms)
{
set<int>::iterator it;
for(it = ms.begin() ; it != ms.end() ; it++)
{
cout << *it << " ";
}
cout << endl;
} int main()
{
set<int> s;
//set的建立
for(int i = ; i <= ; i++)
{
pair<set<int>::iterator, bool> p = s.insert(i);//用于判断是否插入成功
if(p.second)
cout << "successful" << endl;
else
cout << "can not insert the same word" << endl;
} set<int> s2(s);//初始化 print(s2); s2.erase(s2.begin()); //只把头删除了 print(s2); s2.erase(s2.erase()); //把头和值位10的点都删除了 print(s2); //完成对某个元素的查找
set<int>::iterator i;
i = s2.find();
if(i != s2.end())
{
cout << "find" << endl;
}
else
cout << "can not find" << endl; //测试是否可重复
multiset<int> ms;
for(int i = ; i <= ; i = i + )
{
ms.insert(i);
ms.insert(i+);
ms.insert(i+);
ms.insert(i+);
} //测试是否有序
ms.insert(-);
ms.insert(); printms(ms); //查找元素
int v = ;
multiset<int>::iterator t = ms.find(v);
if(t != ms.end())
{
cout << *t << endl;
} //查找相同元素
pair<multiset<int>::iterator,multiset<int>::iterator> cmp = ms.equal_range(v); cout << *cmp.first << endl; //第一个大于等于该元素的值
cout << *cmp.second << endl; //第一个大于该元素的值 cout << ms.count() << endl;//集合中元素为6的个数 multiset<int>::iterator ii; ii = ms.lower_bound();
cout << *ii << endl;
ii = ms.upper_bound();
cout << *ii << endl; return ;
}
STL set集合用法总结(multiset)的更多相关文章
- C++中的STL中map用法详解(转)
原文地址: https://www.cnblogs.com/fnlingnzb-learner/p/5833051.html C++中的STL中map用法详解 Map是STL的一个关联容器,它提供 ...
- STL的其他用法(adjacent_find, find_first_of, sort_heap, merge, binary_search)总结
2017-08-20 17:26:07 writer:pprp 1.adjacent_find() 下面是源码实现: template <class ForwardIterator> Fo ...
- C++-STL:vector用法总结
目录 简介 用法 1. 头文件 2. vector的声明及初始化 3. vector基本操作 简介 vector,是同一类型的对象的集合,这一集合可看作可变大小的数组,是顺序容器的一种.相比于数组,应 ...
- STL vector+sort排序和multiset/multimap排序比较
由 www.169it.com 搜集整理 在C++的STL库中,要实现排序可以通过将所有元素保存到vector中,然后通过sort算法来排序,也可以通过multimap实现在插入元素的时候进行排序.在 ...
- STL的常用用法、函数汇总(不定时更新)
隶书文字为原创. 1.vector 在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结. 1 基本操作 (1)头文件#include<vector>. (2)创建vec ...
- STL中map用法
Map是 STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于 这个特性,它完成有可能在我们处理一对一数据的 ...
- [STL] SET实用用法
背景 今天考试深受平衡树之害,可以参见上一篇博客,想到了set却苦于实用的不熟练.同时QTY询问set的具体用法,所以写这篇博客,同时留作自用. 分类 参看了一下网上其他set博客,上来都是长篇大论概 ...
- C++中的STL中map用法详解
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时 ...
- (转载) STL中map用法详解
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候 ...
随机推荐
- 一次因为文件名开头包含空格而导致FTP文件一直无法下载的悲剧!
最近负责公司研究新的多渠道打包方案,之前的打包方案太慢了,因此采用了美团的Android Signature V2 Scheme签名下的新一代渠道包打包神器 方案进行了多渠道打包.但是由于马虎,在配置 ...
- 配置stun服务器实现穿墙
Turn服务器的配置流程 Webrtc是基于P2P的,在两个客户端建立连接之前需要服务器建立连接,这时两台设备一般都处于一个或者多个NAT中,那么两台设备建立连接就需要穿墙技术. 这时就用到了turn ...
- finecms万能标签list列表使用方法
我们在用finecms建站时经常会用到调用文章列表的功能,这时我们可以用万能标签list来实现,当然还可以调用其他一些数据,下面我们就来看看list函数的相关参数和使用方法 action 支持&quo ...
- MongoDB学习笔记系列~目录
MongoDB学习笔记~环境搭建 (2015-03-30 10:34) MongoDB学习笔记~MongoDBRepository仓储的实现 (2015-04-08 12:00) MongoDB学习笔 ...
- nginx的相关信息
Nginx安装 nginx官网:https://nginx.org/ 安装准备:nginx依赖pcre库,要先安装pcre(nginx在rewrite时需要解析正则,PCRE是正则解析库) yum i ...
- CentOS 7 安装vsftpd 服务器
在CentOS7上安装ftp服务器用于保存服务端上传的图片. 1.CentOS卸载vsftpd的方法 如果服务器上已经安装了vsftpd服务,配置出错需要卸载vsftpd服务. 1.1 查找vsftp ...
- (转)Spring整合Jpa
Spring-data-jpa 学习笔记(一) 作者:zeng1994 出处:http://www.cnblogs.com/zeng1994/ Spring家族越来越强大,作为一名javaWeb开发 ...
- python16_day25【crm】
一.CRM模拟admin功能 1.过滤功能 2.显示数据分页 3.动态菜单 项目:https://github.com/willianflasky/growup/tree/master/s16/hom ...
- ajax参数补充
ajax参数补充 contentType 当我们使用form表单提交数据时,有一个enctype属性,默认情况下不写 此时我们提交数据时,会默认将数据以application/x-www-form-u ...
- Python中i = i + 1与i + = 1的区别
+=是对原本的实例做加1运算,l=l+[1]是对l+[1]之后重新把值赋给叫l的变量(和原来的l不同) 区别在于,一个修改数据结构本身(就地操作)b + = 1而另一个只是重新分配变量a = a + ...