Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在C++;_C++_Map_Multimap - Fatal编程技术网

C++ 在C++;

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

我想知道如何在C++中检索multi-map的值要检索multi-map的值,需要使用它的名称

因此,如果您有一个名为
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;
}