map/multimap 简单使用
#include <vector> #include <iostream> #include <iterator> #include <map> using namespace std; int main() { vector<int> v; v.push_back(1); v.push_back(2); // ostream_iterator<int> output(cout,"*"); ostream_iterator<int> output(cout,"\n"); copy(v.begin(),v.end(),output); typedef multimap <int, int> mmap1; typedef multimap<long ,pair<long,string> > mmap2; mmap1 m1; mmap2 m2; m1.insert( std::make_pair<int, int>(2, 10) ); m1.insert( std::make_pair<int, int>(2, 20) ); m1.insert( std::make_pair<int, int>(2, 30) ); std::multimap<int, int>::iterator iter = m1.find(2); while (iter!=m1.end() && iter->first==2) { cout<<iter->second<<endl; // ... iter++; } m2.insert(std::make_pair<int, pair<long,string> >(10, make_pair(11,"sb11") ) ); m2.insert(std::make_pair<int, pair<long,string> >(2, make_pair(12,"12" ) ) ); m2.insert(std::make_pair<int, pair<long,string> >(10, make_pair(13,"2b13") ) ); multimap<long ,pair<long,string> >::iterator iter2 = m2.find(10); while ( iter2 != m2.end() && iter2->first == 10 ) { cout<<iter2->second.first<<":"<<iter2->second.second<<endl; // ... iter2++; } getchar(); return 0; }