Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.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++ - Fatal编程技术网

C++ 如何在给定第一个索引的二维地图中打印所有元素

C++ 如何在给定第一个索引的二维地图中打印所有元素,c++,C++,正如标题所说,我想打印出这个2D地图中“group1”的所有元素。我尝试了这个,但是我在for循环中得到了一个巨大的错误 #include<iostream> #include<string> #include<map> using namespace std; int main(){ map<string,map<int,double> > myMap; myMap["group1"][13] = 10.41; myMa

正如标题所说,我想打印出这个2D地图中“group1”的所有元素。我尝试了这个,但是我在for循环中得到了一个巨大的错误

#include<iostream>
#include<string>
#include<map>
using namespace std;

int main(){
  map<string,map<int,double> > myMap;
  myMap["group1"][13] = 10.41;
  myMap["group1"][15] = 31.2;

  //print all elements in "group1"
  for (map< string, map<int,double> >::const_iterator iter = 
       myMap["group1"].begin(); iter != myMap["group1"].end(); ++iter)
       {
         cout << iter->first << '\t' << iter->second << '\n';
       }

  return 0;
} 
#包括
#包括
#包括
使用名称空间std;
int main(){
地图我的地图;
myMap[“group1”][13]=10.41;
myMap[“group1”][15]=31.2;
//打印“组1”中的所有元素
对于(map::常量迭代器iter=
myMap[“group1”].begin();iter!=myMap[“group1”].end();++iter)
{

首先,您是否希望内部
映射有一个迭代器,而您正试图获取外部
映射的迭代器:

intmain(){
地图我的地图;
myMap[“group1”][13]=10.41;
myMap[“group1”][15]=31.2;
//打印“组1”中的所有元素
对于(map::const_迭代器iter)=
myMap[“group1”].begin();iter!=myMap[“group1”].end();++iter)
{
首先,
myMap[“group1”]
的类型是
map
而不是
map

那么,您的代码将以某种方式如下所示:

const map<int,double> &grp1map = myMap["group1"];
for (map<int,double>::const_iterator iter = grp1map.begin(); iter != grp1map.end(); ++iter)
{
    cout << iter->first << '\t' << iter->second << '\n';
}
for (auto &elem : myMap["group1"] )
{
    cout << elem.first << '\t' << elem.second << '\n';
}
但无论如何,你应该这样做:

const map<int,double> &grp1map = myMap["group1"];
for (map<int,double>::const_iterator iter = grp1map.begin(); iter != grp1map.end(); ++iter)
{
    cout << iter->first << '\t' << iter->second << '\n';
}
for (auto &elem : myMap["group1"] )
{
    cout << elem.first << '\t' << elem.second << '\n';
}
for(auto&elem:myMap[“group1”])
{

cout和错误消息是?什么版本的c++Auto x=myMap[“group1”];for(Auto y:x)cout-Auto是您的朋友,他们帮助您使用这种复杂的迭代器语法。