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中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候 ...
随机推荐
- 解决kindeidtor与struts2框架交互WARN OgnlValueStack:68 - Error setting value [[Ljava.lang.String;@10da4df]的bug
当用使用ssh框架,前端用到kindeitor富文本编辑器时候,上传文件后有一个图片管理.当点击图片管理的时候,在后台会报一个异常: WARN OgnlValueStack:68 - Error se ...
- VC++SDK编程——字体及位置示例
#include <Windows.h> #include <tchar.h> #include <math.h> #define PI 3.1415926 BOO ...
- Spring整合JUnit4进行AOP单元测试的时候,报:"C:\Program Files\Java\jdk1.8.0_191\bin\java.exe" -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2018.3\lib\idea_rt.jar=64
错误代码 "C:\Program Files\Java\jdk1.8.0_191\bin\java.exe" -ea -Didea.test.cyclic.buffer.size= ...
- 转载:futex同步机制详解
在编译2.6内核的时候,你会在编译选项中看到[*] Enable futex support这一项,上网查,有的资料会告诉你"不选这个内核不一定能正确的运行使用glibc的程序", ...
- Android Studio下编译调试 ndk 的示例
https://github.com/googlesamples/android-ndk https://github.com/googlesamples android studio 手动安装cma ...
- Oracle 性能调优 SQL_TRACE
思维导图 Oracle优化10-SQL_TRACE解读 Oracle优化11-10046事件 概述 当我们想了解一条SQL或者是PL/SQL包的运行情况时,特别是当他们的性能非常差时,比如有的时候看起 ...
- yii2引入js和css
assets/AppAsset.php public $css = [ 'css/site.css', 'css/font/css/font-awesome.min.css', 'css/doc.cs ...
- POI 导出文件 报空指针异常 --Docker 中
应用导出文件时 报空指针异常 莫名的地方Docker 使用的是轻量级的 jdk 需要更换 jdkDockerfile 中修改配置- registry-docker.zhaopin.com.cn/too ...
- C++ error C2064:
error C2064: term does not evaluate to a function 错误原因,非函数,当成函数使用了
- 解决 ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
速度太慢点击了一下优化,出现了 ORA-12514,搜索了解决方法记录一下,第一个基本服务就解决了. 转自:http://apps.hi.baidu.com/share/detail/19115407 ...