访问map <int,pair <double,double>&gt;元素</INT,对<双,双>

时间:2014-05-20 09:40:37

标签: c++ dictionary

我通过一个函数传递map<double, pair<int, int>>,现在我想访问该对中的元素,它怎么可能?我的问题如下所示:

void func(map<double ,pair<int ,int > & f)
{

  int d= b+c;
}

3 个答案:

答案 0 :(得分:1)

如果您确定a存在:

void func(int a,map<int,pair<double,double>>& m)
{
    double d = m[a].first + m[a].second;
}

否则:

void func(int a,map<int,pair<double,double>>& m)
{
    double d = 0;
    if( m.find(a) != m.end() ) 
        d = m[a].first + m[a].second;
}

答案 1 :(得分:0)

以下内容可能有所帮助(在C ++ 11中):( https://ideone.com/WcFHaw

void print(const std::map<int, std::pair<int, int>> &m)
{
    for (const auto& p : m)
    {
        std::cout << "key = " << p.first << ", value = {" << p.second.first << ", " << p.second.second << "}"<< std::endl;
    }
}

答案 2 :(得分:0)

尝试使用:

void func(map<int, pair<double, double> >& m)
{
    for (auto i : m)
    {
        double d = i.second.first + i.second.second;
    }
}

阅读有关地图,配对和模板的手册也很有用。