multiset基础学习,可以有重复类型的多重集合容器
#include <set>
#include <iostream>
using namespace std; struct Student
{
char *name;
int year;
char *addr;
}; void find_test()
{
multiset<int> ms;
ms.insert(10);
ms.insert(11);
ms.insert(12);
ms.insert(13);
ms.insert(14);
ms.insert(15);
ms.insert(16);
ms.insert(17);
ms.insert(18);
ms.insert(13);
ms.insert(19); //find the element 13 int v = 19;
multiset<int>::iterator i_v = ms.find(v); cout<<*i_v<<endl; //equal_range search the element 13
v = 13;
pair<multiset<int>::iterator , multiset<int>::iterator> p = ms.equal_range(v); cout<<"大于等于"<<v<<"的第一个元素为(x>=k)为 "<<*p.first<<endl;
cout<<"大于"<<v<<"的第一个元素(x>k)为 "<<*p.second<<endl; //打印重复键值元素13 multiset<int>::iterator i;
cout<<"键值为 "<< v <<"的所有元素为 ";
for (i = p.first; i!=p.second; i++)
{
cout<<*i<<' ';
} cout<<endl;
cout<<endl; } //比较函数 struct StudentLess
{
bool operator()(const Student &s1, const Student &s2)const
{
return (s1.year) < (s2.year) ;
}
}; void other_multiset()
{
Student stuArray[] =
{
{" 李强", 21, "北京"},
{" 月月", 23, "西安"},
{" 大力", 21, "美国"},
{" 小二", 22, "南非"},
{" 小明", 23, "日本"},
}; //create a object of multiset
multiset<Student, StudentLess>ms(stuArray, stuArray+5, StudentLess()); //count
cout<<"学生人数: "<<ms.size()<<endl<<endl;
cout<<"年龄为21岁的学生人数"<<ms.count(stuArray[0])<<endl<<endl; //print all
//multiset<Student>::iterator i, iend;//报错!!!
//<c++ STL开发技术导引>上的代码是这么写的,vs2010报错,和下面的迭代器类型不同
multiset<Student, StudentLess>::iterator i, iend;
iend=ms.end(); cout<<"姓名 " <<"年龄 "<<"地址 \n";
for (i=ms.begin(); i!=iend; i++)
{
cout<<(*i).name<<" "<<(*i).year<<" "<<(*i).addr<<" "<<endl;
} cout<<endl;
} int main()
{
find_test();
other_multiset(); getchar(); return 0;
}
结果:
下面链接是当时出现的问题:
http://bbs.csdn.net/topics/390724469?page=1#post-396890764
multiset基础学习,可以有重复类型的多重集合容器的更多相关文章
- multiset多重集合容器(常用的使用方法总结)
关于C++STL中multiset集合容器的学习,看别人的代码一百遍,不如自己动手写一遍. multiset多重集合容器和set集合容器的使用方法大多相同,不同的是multiset多重集合容器允许重复 ...
- C++STL之multiset多重集合容器
multiset多重集合容器 multiset与set一样, 也是使用红黑树来组织元素数据的, 唯一不同的是, multiset允许重复的元素键值插入, 而set则不允许. multiset也需要声明 ...
- multiset多重集合容器
跟set集合容器相比,multiset多重集合容器也使用红黑树组织元素,仅仅是multiset多重集合容器同意将反复的元素键值插入.元素的搜索依旧具有对数级的算法时间复杂度,find和equal_ra ...
- C语言基础学习基本数据类型-Char类型
char类型 char类型用于储存字母和标点之类的字符.但是在技术实现上char却是整数类型.为了处理字符,计算机使用一种数字编码,用特定的整数表示特定的字符.字符变量输入输出用%c符号.定义语法如下 ...
- C语言基础学习基本数据类型-int类型与int变量
int类型与int变量 针对不同的用途,C语言提供了多种整数类型.各种整数类型的区别在于所提供数值的范围,以及数值是否可以取负值. 在之前的实例中你已经看到过,int关键字用于声明整型变量. int类 ...
- JDBC基础学习(三)—处理BLOB类型数据
一.BLOB类型介绍 在MySQL中,BLOB是一个二进制的大型对象,可以存储大量数据的容器,它能容纳不同大小的数据. 在MySQL中有四种BLOB类型. 实际使 ...
- c语言基础学习09_关于复合类型的复习
=============================================================================struct A{ char array[10 ...
- C++基础学习1: C++布尔类型
布尔类型(bool)是C++新增的一种基本数据类型.在标准的C语言中并未定义bool类型,如果需要使用bool类型, 程序员可以通过宏定义来自定义一个bool类型,定义语句如下: #define bo ...
- python 的基础 学习 第八天数据类型的补充 ,集合和深浅copy
1,数据类型的补充: 元组()tuple,如果只有元素,并且没有逗号,此元素是什么数据类型,该表达式就是什么数据类型. tu = ('rwr') print(tu,type(tu)) tu = ('r ...
随机推荐
- Centos中git的安装
CentOS的yum源中没有git,只能自己编译安装,现在记录下编译安装的内容,留给自己备忘. 确保已安装了依赖的包 yum install curl yum install curl-deve ...
- 【翻译】Ext JS 6.2 早期访问版本发布
原文:Announcing Ext JS 6.2 Early Access 非常开心,Sencha Ext JS 6.2早期访问版本今天发布了.早期访问版本的主要目的是为了让大家进行测试并评估Ext ...
- (一〇七)iPad开发之modal的切换方式与展示方式
在iPad上modal有四种切换方式,分别是竖直进入(由下到上,默认方式).水平翻转.淡入淡出. 属性要设置在将要modal出来的控制器上: /* typedef NS_ENUM(NSInteger, ...
- Nginx中502和504错误详解
在使用Nginx时,经常会碰到502 Bad Gateway和504 Gateway Time-out错误,下面以Nginx+PHP-FPM来分析下这两种常见错误的原因和解决方案. 1.502 Bad ...
- Android必知必会--GreenDao缓存
Github版 CSDN版 本篇文章不是介绍GreenDao的配置和基础使用,记录一下GreenDao缓存的问题,帮助遇到同样问题的朋友找到原因和方法,下面是示例: 场景重现 //第一次查询 List ...
- Java中的五种单例模式
Java模式之单例模式: 单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例. 特点: 1,一个类只能有一个实例 2 自己创建这个实例 3 整个系统都要使用这个实例 例: 在下面 ...
- Android反编译获取资源文件-android学习之旅(69)
有时候你看到一些很好看的布局,会考虑别人怎么实现的,回想参考一下,那么这时候反编译一下是很必要的. 要用到的工具apktool.bat和aapt.exe和apktool.jar(要最新版本) 下载前两 ...
- QGIS编译
一.准备工作 1.下载QGIS源码 最新版本的QGIS源码需要从git上下载.最新的发布版是2.0,下载地址见下.https://github.com/qgis/QGIS/tree/release-2 ...
- listview异步加载图片并防止错位
android listview 异步加载图片并防止错位 网上找了一张图, listview 异步加载图片之所以错位的根本原因是重用了 convertView 且有异步操作. 如果不重用 conver ...
- 集团公司(嵌入ETL工具)财务报表系统解决方案
集团公司(嵌入ETL工具)财务报表系统解决方案 一.项目背景: 某集团公司是一家拥有100多家子公司的大型集团公司,旗下子公司涉及各行各业,包括:金矿.铜矿.房产.化纤等.由于子公司在业务上的差异,子 ...