如何从C ++中读取地图?

时间:2015-03-10 10:12:59

标签: c++ dictionary

我有100个元素的std::map<int,float,float> m_mapWheelvalue;地图 我需要读取值。我正在使用的代码如下:

float fvalue1,fvalue2;
std::map<double,float,float>::iterator itNewMap;
itNewMap= m_mapWheelvalue.find(20);     
if(itNewMap!= m_mapWheelvalue.end())
{           
        fValue1 = itNewMap->second;
        fValue2= itNewMap->third;  
}

但是给出错误!! {第三未定义} 如何阅读第三个价值 请给出适当的解决方案

1 个答案:

答案 0 :(得分:3)

以下为我编译:

#include <map>
int main(){
   std::map<double,std::pair<float,float> > m_mapWheelvalue;
   float fValue1,fValue2;
   std::map<double,std::pair<float,float> >::iterator itNewMap;
   itNewMap= m_mapWheelvalue.find(20);

   if(itNewMap!= m_mapWheelvalue.end()){
        fValue1 = itNewMap->second.first;
        fValue2= itNewMap->second.second;
   }
}

注意:

  • 查看std::map定义:第一个参数是键,第二个参数是条目...第三个参数是比较函数。我想你想在条目中有几个值。我选择使用一对(因为你有两个),如果你有更多,你可能想要定义一个结构/类。
  • 检查变量名称,有几处案例更改。
  • 地图的迭代器会获得一对密钥,条目...所以itNewMap-&gt;首先是密钥,itNewMap-&gt; second是条目。