C++ 在C++;
我想知道如何在C++中检索multi-map的值要检索multi-map的值,需要使用它的名称 因此,如果您有一个名为C++ 在C++;,c++,map,multimap,C++,Map,Multimap,我想知道如何在C++中检索multi-map的值要检索multi-map的值,需要使用它的名称 因此,如果您有一个名为myMap的多重映射,则可以使用以下表达式检索其值: myMap 一旦有了它的值,就可以将其复制到另一个多重映射中,或者可以调用它的成员函数将其值分解为更小的逻辑子值 要访问与给定键对应的映射值的特定范围(在本例中称为myKey),可以使用: myMap.equal_range(myKey) 这将计算为iterators的std::pair(或者const\u迭代器,如果m
myMap
的多重映射,则可以使用以下表达式检索其值:
myMap
一旦有了它的值,就可以将其复制到另一个多重映射中,或者可以调用它的成员函数将其值分解为更小的逻辑子值
要访问与给定键对应的映射值的特定范围(在本例中称为
myKey
),可以使用:
myMap.equal_range(myKey)
这将计算为iterator
s的std::pair
(或者const\u迭代器
,如果myMap
是const
),它用与myKey
等价的键来限定键值对的范围
例如(假设myMap是从T1到T2的映射,其中T1和T2不是依赖类型):
typedef std::multimap::iterator iter;
对于(std::pair range(myMap.equal_range(myKey));
range.first!=range.second;
++射程(第一)
{
//在每个迭代范围中。first将引用不同的对象
//在每种情况下,range.first->first将等同于myKey
//和range.first->second将是range.first->first映射到的值。
}
多重映射的内部结构表示为std::pair
。它有第一、第二个成员first
是键,second
是与键关联的值
#include <iostream>
#include <map>
using namespace std;
int main(){
multimap<int,int> a;
a.insert(pair<int,int> (1,2));
a.insert(pair<int,int> (1,2));
a.insert(pair<int,int> (1,4));
for (multimap<int,int>::iterator it= a.begin(); it != a.end(); ++it) {
cout << it->first << "\t" << it->second << endl ;
}
return 0;
}
#包括
#包括
使用名称空间std;
int main(){
多重映射a;
a、 插入(对(1,2));
a、 插入(对(1,2));
a、 插入(对(1,4));
for(multimap::iterator it=a.begin();it!=a.end();++it){
首先,这里可能非常模糊。要填写一些详细信息吗?一般来说,多重映射存储键值对。您想要所有的值吗?一个特定的值?您尝试了什么,失败在哪里?我知道在perl中,我可以通过给映射一个键来访问该值??我将如何在C++中执行类似的操作?您的描述有点错误。在每种情况下,range.first->first将等同于myKey和range.first->second将是range.first.first映射到的值。@mitendra:谢谢!修复了。
#include <iostream>
#include <map>
using namespace std;
int main(){
multimap<int,int> a;
a.insert(pair<int,int> (1,2));
a.insert(pair<int,int> (1,2));
a.insert(pair<int,int> (1,4));
for (multimap<int,int>::iterator it= a.begin(); it != a.end(); ++it) {
cout << it->first << "\t" << it->second << endl ;
}
return 0;
}