linux下练习 c++ 容器set、multimset的特性-阿里云开发者社区

开发者社区> 真爱无限> 正文

linux下练习 c++ 容器set、multimset的特性

简介: print.h //print.h #include using namespace std; #ifndef print_fun #define print_fun template ///显示序列数据 ...
+关注继续查看

print.h

//print.h

#include <iostream>

using namespace std;

#ifndef print_fun

#define print_fun

template<typename T>

///显示序列数据

void print(T b,T e,char c=' ')

{

	bool isExit=false;

	while (b!=e)

	{

		cout<<*b++<<c;

		isExit=true;

	}

	if(isExit) cout<<endl;



}

template<typename K,typename V>

ostream& operator<<(ostream& o,const pair<K,V>& p)//重载输出map类型元素

{

	return o<<p.first<<':'<<p.second;

}

#endif


 

set.cpp

/*

set特性

元素就是key=value

不允许重复

*/

#include<set>

#include<iostream>

using namespace std;

#include<string>

#include<fstream>
#include"print.h"

int main()

{

	set<string> ss;//定义容器

	string s;//

	ifstream fin("maillist.txt");

	if(!fin)

	{

		return 1;

	}

	while(fin>>s) ss.insert(s);

	print(ss.begin(),ss.end());

}

结果:

 

 

multiset.cpp

/*

set特性

元素就是key=value

允许重复key

*/

#include<set>

#include<iostream>

using namespace std;

#include<string>

#include<fstream>

#include<map>
#include"print.h"

int main()

{

	multiset<string> ms;

	string s;

	ifstream fin("maillist.txt");

	if(!fin)

	{

		return 1;

	}

	while(fin>>s) ms.insert(s);

	print(ms.begin(),ms.end());

	multiset<string>::iterator ib=ms.begin(),ie;

	multimap<int,string> mis;

	while(ib!=ms.end())

	{

		mis.insert(make_pair(ms.count(*ib),*ib));//排好序的一段

		ib=ms.upper_bound(*ib);

	}

	print(mis.begin(),mis.end());

	return 0;

}

 

maillist.txt  

ppp1@qq.com

ppp2@qq.com

ppp3@qq.com

ppp2@qq.com

ppp2@qq.com

ppp1@qq.com

ppp1@qq.com



 

结果:

 

 

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
飞天加速计划·高校学生在家实践
关于使用小白对阿里云ECS的使用
32 0
【Elastic Engineering】Elasticsearch 中的一些重要概念: cluster, node, index, document, shards 及 replica
Elasticsearch 中的一些重要概念: cluster, node, index, document, shards 及 replica
6 0
【Elastic Engineering】Elasticsearch 中的一些重要概念: cluster, node, index, document, shards 及 replica
Elasticsearch 中的一些重要概念: cluster, node, index, document, shards 及 replica
2 0
对阿里云ECS服务器的初步使用与体验
研二学生学习阿里云的使用体验
16 0
用阿里云飞天计划提供的CES服务器为高中生活搭建“故事簿”网页
一名刚踏入大学的大一本科生利用阿里云提供的CES服务器为高中“故事簿”搭建网页
15 0
阿里云对于学习的帮助
在配置好阿里云后的使用过程中发现的帮助,以及便利。
8 0
ECS初体验的感受
ECS初体验的感受 云翼计划
15 0
阿里ECS初体验
谈谈使用阿里ECS的体验感受
13 0
第一次使用ECS的过程
为方便做毕业设计的过程中向导师展示进度,开始接触云服务器,本篇文章主要记录了一下我的学习过程。
28 0
+关注
真爱无限
主要技术.net sqlserver mysql。
302
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载