multiset 的意思是多重集合,和集合set的操作基本一致,只不过multiset支持插入重复的对象。在集合中允许重复的元素出现。头文件依旧还是#include<set>
multimap的意思是多重映照容器,和map的操作基本一致,类似的multimap支持插入相同的键值。头文件和map的头文件一样。
下面是学校OJ的一个关于multimap的简单使用的题,只有插入和删除:
#include<iostream> #include<set> #include<string> #include<cstdio> using namespace std; int main() { // freopen("1.txt", "w", stdout); int n; multiset<int> s; string str; while(cin >> n && n) { for(int i=0;i<n;i++) { cin >> str; if(str == "i") { int a; cin >> a; s.insert(a); } else if(str == "d") { int a; cin >> a; for(multiset<int>::iterator it=s.begin();it!=s.end();it++) if(*it == a) { s.erase(it); break; } } } for(multiset<int>::iterator it=s.begin();it!=s.end();++it) { if((++it) != s.end()) { --it; cout << *it << " "; } else { --it; cout << *it; } } cout << endl; s.clear(); } return 0; }
原文地址:http://blog.csdn.net/fk5431/article/details/46316285