multimap遍列相同key
map与multimap存在不同的地方是,前者无法保存关键字重复的数据,后都可以支持保存关键字重复的数据;前者可以使用[]运算符来取得相应的关键字数据,后者无此运算符,在遍列相同元素时,后者不能使用find进行遍列,但可以使用以下 代码片
进行遍列.
// An highlighted block
#include "stdafx.h"
#include <map>
#include <string>
using namespace std;
int main(int argc, _TCHAR* argv[])
{
multimap<long,string> l_test;
l_test.insert(make_pair(1,"1"));
l_test.insert(make_pair(1,"11"));
l_test.insert(make_pair(1,"111"));
l_test.insert(make_pair(2,"2"));
l_test.insert(make_pair(2,"22"));
l_test.insert(make_pair(3,"3"));
l_test.insert(make_pair(4,"4"));
l_test.insert(make_pair(4,"44"));
l_test.insert(make_pair(3,"33"));
std::pair<multimap<long,string>::iterator,multimap<long,string>::iterator> l_mpfind;
l_mpfind = l_test.equal_range(3);
int l_nNum = 0;
string l_strData;
multimap<long,string>::iterator l_tpos;
for(l_tpos=l_mpfind.first;l_tpos!=l_mpfind.second;l_tpos++)
{
l_nNum = l_tpos->first;
l_strData = l_tpos->second;
}
return 0;
}