方式一:
typedefstd::multimap<int,int> Pairs;
multimap<int,int>::iterator iter;
Pairs pairs;
pairs.insert(make_pair(1, 1));
pairs.insert(make_pair(1,2));
pairs.insert(make_pair(1,3));
pairs.insert(make_pair(2, 4));
pairs.insert(make_pair(2,5));
pairs.insert(make_pair(3,2));
intkey = 1;
Pairs::iterator position = pairs.lower_bound(key);
while(position != pairs.upper_bound(key))
{
cout << position->first << "\t"<< position->second;
++position;
}
方式二:
typedefstd::multimap<int,int> Pairs;
multimap<int,int>::iterator iter;
Pairs pairs;
pairs.insert(make_pair(1, 1));
pairs.insert(make_pair(1,2));
pairs.insert(make_pair(1,3));
pairs.insert(make_pair(2, 4));
pairs.insert(make_pair(2,5));
pairs.insert(make_pair(3,2));
iter = pairs.find(1); //find返回的是第一个找到的元素的位置
if(iter == pairs.end()) cout << "can not find 2\n"; //注意判断没有找到的办法
elsecout << iter->second << endl;
pair<Pairs::iterator, Pairs::iterator> range; //前面说了find只能返回第一个位置
range = pairs.equal_range(1); //要是想得到全部,只能这样啦
for(iter = range.first; iter != range.second; iter++)
cout << iter->first << " " << iter->second << endl;