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)的更多相关文章

  1. C++中的STL中map用法详解(转)

    原文地址: https://www.cnblogs.com/fnlingnzb-learner/p/5833051.html C++中的STL中map用法详解   Map是STL的一个关联容器,它提供 ...

  2. 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 ...

  3. C++-STL:vector用法总结

    目录 简介 用法 1. 头文件 2. vector的声明及初始化 3. vector基本操作 简介 vector,是同一类型的对象的集合,这一集合可看作可变大小的数组,是顺序容器的一种.相比于数组,应 ...

  4. STL vector+sort排序和multiset/multimap排序比较

    由 www.169it.com 搜集整理 在C++的STL库中,要实现排序可以通过将所有元素保存到vector中,然后通过sort算法来排序,也可以通过multimap实现在插入元素的时候进行排序.在 ...

  5. STL的常用用法、函数汇总(不定时更新)

    隶书文字为原创. 1.vector 在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结. 1 基本操作 (1)头文件#include<vector>. (2)创建vec ...

  6. STL中map用法

    Map是 STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于 这个特性,它完成有可能在我们处理一对一数据的 ...

  7. [STL] SET实用用法

    背景 今天考试深受平衡树之害,可以参见上一篇博客,想到了set却苦于实用的不熟练.同时QTY询问set的具体用法,所以写这篇博客,同时留作自用. 分类 参看了一下网上其他set博客,上来都是长篇大论概 ...

  8. C++中的STL中map用法详解

    Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时 ...

  9. (转载) STL中map用法详解

    Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候 ...

随机推荐

  1. python学习笔记(三)— 文件操作

    对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件a.txt: 登鹳雀楼 唐代:王之涣 白日依山尽,黄河入海流. 一.文件基 ...

  2. jquery插件网址

    各种分布图的插件:http://echarts.baidu.com/demo.html

  3. C++的全部目标就是最优化资源的利用,以人付出更多为代价。Python刚好是另一个极端(Bjarne就说,一个人至少应该掌握两种计算机语言)

    说 C++ 反人类,是如果把 C++ 看作人(程序员)和资源(电子系统)的桥梁,他的全部目标就是最优化资源的利用,以人付出更多为代价.Python刚好是另一个极端.做好两个一起学.Bjarne就说,一 ...

  4. 机房断电导致MySQL同步1594错误

    1.错误信息 Last_IO_Error: Got fatal error from master when reading data from binary log: ' at 208645951. ...

  5. bat批处理异备文件、压缩文件

    1.压缩本地文件,并把压缩后的文件复制到其他机器 net use Z: \\192.168.135.1\share_linux a123456! /user:chaoqun.guo set bath= ...

  6. POJ1459:Power Network(dinic)

    题目链接:http://poj.org/problem?id=1459 题意:有n个结点,np个发电站,nc个消费者,m个电力运输线.接下去是m条边的信息(u,v)cost,cost表示边(u,v)的 ...

  7. PKU 1655 Balancing Act(树+树的重心)

    #include<cstdio> #include<cstring> #include<algorithm> #define maxn 20005 using na ...

  8. appium服务关键字

    关键字 描述 实例 automationName 你想使用的自动化测试引擎 Appium (默认) 或 Selendroid platformName 你要测试的手机操作系统 iOS, Android ...

  9. 安全SOCKET

    导语 要使用安全Socket需要对密码学有一定的了解.在阅读本文之前最好能阅读一下下面几个网站的内容 http://kb.cnblogs.com/page/194742/ http://kb.cnbl ...

  10. 新linux系统上rz 与sz命令不可用

    使用命令进行安装:yum install lrzsz  即可使用