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 ...
随机推荐
- EBS采购(PO)模块常用表
select * from po_requisition_headers_all 请求头 select * from po_requisition_lines_all 请求行 select * ...
- C语言实现简单黑客帝国代码流
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <windows.h> ...
- 即时通讯软件openfire+spark+smack
所以我基本上分为三篇文章来介绍此类软件的开发: 第一篇是关于XMPP 协议是啥,IM 是啥以及一个比较有名的开源实现,该开源实现包括三个部分(Spark.Smack和Openfire): 第二篇讲如何 ...
- [struts2学习笔记] 第二节 使用Maven搞定管理和构造Struts 2 Web应用程序的七个步骤
本文地址:http://blog.csdn.net/sushengmiyan/article/details/40303897 官方文档:http://struts.apache.org/releas ...
- [ExtJS5学习笔记]第十一节 Extjs5MVVM模式下系统登录实例
本文地址:http://blog.csdn.net/sushengmiyan/article/details/38815923 实例代码下载地址: http://download.csdn.net/d ...
- Servlet之异常处理
当一个 Servlet 抛出一个异常时,Web 容器在使用了exception-type 元素的 web.xml 中搜索与抛出异常类型相匹配的配置. 前提是必须在 web.xml 中使用 error- ...
- Dynamics CRM 窗体Javascript获取时间字段值的准确转换
本篇延续上篇博文继续时间字段的转化实验,本篇讲的是在窗体Javascript中获取及更新时间字段的具体写法,是否需要进行时制的转化,先看下通过ODATA取到的时间字段值 当然取出来看格式就知道是不能直 ...
- 可视化分析工具Cytoscape使用记录
最近项目要使用到可视化分析工具Cytoscape,所以会花费很多的时间跟精力来整理Cytoscape软件使用和开发的相关资料,希望写下的文章能减少有兴趣的同行学习跟开发所走的弯路时间.同时也是因为百度 ...
- UNIX网络编程——经常使用的套接字选项
1.设置/获取套接字选项 int setsockopt(int socket, int level, int option_name, const void *option_value, sockle ...
- ADO.NET之Parameter属性
在ADO.NET中, public SqlParameterCollection Parameters {get;}会得到一个SqlParameter属性.下面通过一个例子进行详细的认识吧. //例如 ...