linux下练习 c++ 容器set、multimset的特性
生活随笔
收集整理的這篇文章主要介紹了
linux下练习 c++ 容器set、multimset的特性
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
print.h
//print.h#include <iostream>using namespace std;#ifndef print_fun#define print_funtemplate<typename T>///顯示序列數(shù)據(jù)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不允許重復(fù)*/#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());}結(jié)果:
?
?
multiset.cpp
/*set特性元素就是key=value允許重復(fù)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.comppp2@qq.comppp3@qq.comppp2@qq.comppp2@qq.comppp1@qq.comppp1@qq.com
?
結(jié)果:
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/pukuimin/archive/2012/10/26/2988088.html
總結(jié)
以上是生活随笔為你收集整理的linux下练习 c++ 容器set、multimset的特性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: w讠ndows Boot Manager
- 下一篇: stl algorithm -- sor