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;
}