c++multimap问题,假设我有一些键值对<charA,charB>,我想让程序告诉我charA有那些值,而且重复了几次谢谢
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++multimap问题,假设我有一些键值对<charA,charB>,我想让程序告诉我charA有那些值,而且重复了几次谢谢相关的知识,希望对你有一定的参考价值。
<aaa,b>
<aab,v>
<ff,a>
<aaa,t>
<aaa,wq>
<ff,fa>
...
比如说是如上值,charA一共有aaa aab ff,其中aaa出现了3次 aab出现了1次 ff出现了2次
怎么编程序?
我的<charA,charB>都是上文传下来的参数,不是上边给这些固定值,我是要读一个未知的数据库 我并不知道搜集到charA是什么值
typedef multimap<string,string> MulStr;
MulStrdatas;
datas.insert(make_pair("aaa","b"));
datas.insert(make_pair("aaa","v"));
datas.insert(make_pair("ff","a"));
datas.insert(make_pair("aaa","t"));
datas.insert(make_pair("aaa","wq"));
datas.insert(make_pair("ff","fa"));
pair<MulStr::iterator, MulStr::iterator> p = datas.equal_range("aaa");
for (MulStr::iterator i=p.first; i!=p.second; ++i)
cout<<it->first<<" "<<it->second<<endl;
追问
我的都是上文传下来的参数,你明白我意思么,不是上边给这些固定值,我是要读一个未知的数据库
参考技术A 楼上“9527坏蛋”的回答就是方法所在。结合你另一个问题的意思,可以理解为上文传下来的参数<charA,charB>是通过vector传下来的吗?并且vector中存的一个结构体,里面有两个成员,即A和B?追问
我打算用map获得不重复的key,用multimap获得重复的key,再迭代对比这两个map
参考技术B void fun(const multimap<char,char>&r,char a)for(auto m:r)
if(m.frist==a)
//该值为所需之一
auto ite=r.find(a);
while(ite!=r.end())
if(ite->frist!=a)break;
//该跌代器指向所需值之一
追问
我的都是上文传下来的参数,你明白我意思么,不是上边给这些固定值,我是要读一个未知的数据库 我并不知道搜集到charA是什么值
以上是关于c++multimap问题,假设我有一些键值对<charA,charB>,我想让程序告诉我charA有那些值,而且重复了几次谢谢的主要内容,如果未能解决你的问题,请参考以下文章