我通过一个函数传递map<double, pair<int, int>>
,现在我想访问该对中的元素,它怎么可能?我的问题如下所示:
void func(map<double ,pair<int ,int > & f)
{
int d= b+c;
}
答案 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;
}
}
阅读有关地图,配对和模板的手册也很有用。