【发布时间】:2016-09-17 04:45:04
【问题描述】:
我正在尝试使用名为map <int, vertex> nodemap的映射中的迭代器返回一对,但是我遇到了一个错误,上面写着:error: invalid operands to binary expression ('std::map<int, vertex>::iterator' (aka '__map_iterator<typename __base::iterator>') and 'int') std::pair<int, vertex> node = *(it + v);
下面是我的功能代码:
std::pair<int, vertex> Graph::getMap(int v)
{
std::map <int, vertex>::iterator it = nodemap.begin();
std::pair<int, vertex> node = *(it + v);
return node;
}
我假设指针算术是可能的,并且映射由 Stack Question 中提到的对组成。
感谢您的帮助!
【问题讨论】:
-
您是在寻找地图中的第 v 个元素还是带有键 v 的节点?
-
见 GWW 的回答。只需使用 nodemap.find(v) 获取元素。 std::map 是一个关联容器。
标签: c++ dictionary data-structures stl std-pair