【发布时间】:2014-01-14 10:19:33
【问题描述】:
我正在尝试使用 *iterator 访问值和键,如图所示:
for (Map<K, V>::iterator it = map.begin(); it != map.end(); ++it) {
V& value = (*it).getValue(); // or*it.getValue();
}
它不起作用,即使下拉菜单也不显示任何内容(使用 Eclipse)。 让它工作的唯一方法是执行以下操作:
Node<K, V>& node = *it;
V& value = node.getValue();
我有 const 和无 const getter,还有 * 运算符返回对节点的引用。
编辑:
我正在实现我自己的地图代码。
编辑 2 我想通了,我的 * 运算符正在返回一个指针,我认为它返回 & 。 谢谢大家
【问题讨论】:
-
你得到什么错误? BTW 是 K 和 V 模板参数?
-
看起来您使用的不是
std::map,而是其他一些容器。您需要发布一些代码来显示容器迭代器的外观。 -
什么是
Map?它是std::map的别名,还是非标准的别名? -
我没有使用 (*it).getValue(); 运行代码,是的,它们是模板参数