#include <vector> #include <set> #include <iostream> #include <sstream> #include <map> using namespace std; int rands() { return rand()%10; } int main() { //map 里面不会有重复的元素 //multimap 可以有重复元素,即可以有关键字相同的值 map<int,string> stda;//第一个为关键字,弟二个为值,插入的东西都按照关键字来排序 cout<<"now insert some/n"; int i; map<int,string>::iterator itit; //插入10个值, for(i=0;i<10;++i) { //获取字符串 ("%domg",i) stringstream ss; ss<<i; ss<<"omg"; string s=ss.str(); stda[i]=s;//map重写了[]操作符,如果[i]没有元素则创建并插入,如果有元素则覆盖 } //将插入后的map输出 for(itit=stda.begin();itit!=stda.end();++itit) { string &s=(*itit).second;//first是关键字,second是值 cout<<s<<endl; } cout<<"now try find/n"; itit=stda.find(4); if(itit!=stda.end()) { //找到 string &s=(*itit).second; cout<<s<<endl; } cout<<"now try multimap/n"; multimap<int,string> stda2; multimap<int,string>::iterator itit2; for(i=0;i<10;++i) { stringstream ss; ss<<i; ss<<"omg"; string s=ss.str(); stda2.insert(make_pair(i,s)); } //插入关键字相同的元素 for(i=9;i>=0;--i) { stringstream ss; ss<<"ggmo"; ss<<i; string s=ss.str(); stda2.insert(make_pair(i,s)); } for(itit2=stda2.begin();itit2!=stda2.end();++itit2) { cout<<(*itit2).second<<endl; } cout<<"now try find 4/n"; int counts=stda2.count(4);//关键字为4的个数 if(counts>0)//如果有值 { itit2=stda2.find(4);//从第一个关键字为4的开始,一直到之后的counts个都是关键字为4 while(counts>0) { cout<<(*itit2).second<<endl; itit2++; counts--; } } }