包含的库:
#include<map>
测试代码:
multimap<string,int> multimapSTRint;
multimapSTRint.insert(make_pair("strtrest",125));
multimapSTRint.insert(make_pair("strtrest",126));
multimapSTRint.insert(make_pair("strtrest",12));
multimapSTRint.insert(make_pair("1",1));
multimapSTRint.insert(make_pair("2",2));
multimapSTRint.insert(make_pair("3",3));
multimapSTRint.insert(make_pair("3",32));
multimapSTRint.insert(make_pair("3",33));
multimapSTRint.insert(make_pair("strtrest",122));
multimapSTRint.insert(make_pair("strtrest",123));
multimapSTRint.insert(make_pair("strtrest",124));
方法1:(利用map排序,将同一个key排序,连续)
typedef multimap<string,int>::size_type sz_type;
sz_type entries = multimapSTRint.count("strtrest");//找到元素的个数
multimap<string,int>::iterator iter = multimapSTRint.find("strtrest");
for (sz_type cnt = 0;cnt!=entries;++cnt,++iter)
{
int strtest;
strtest = iter->second;
}
方法2:(lower_bound返回第一个示例的迭代器;upper_bound返回最后一个示例下一个位置的迭代器)
typedef multimap<string,int>::iterator iterTest;
iterTest beg = multimapSTRint.lower_bound("strtrest");
iterTest end = multimapSTRint.upper_bound("strtrest");
while(beg != end)
{
int Nstr = beg->second;
++beg;
}
方法3:(与方法2中使用的类似,只是用pair简化代码)
pair<iterTest,iterTest> pos = multimapSTRint.equal_range("strtrest");
while(pos.first != pos.second)
{
int Nstr = pos.first->second;
++pos.first;
}