用getter为迭代器实现一个地图容器

埃玛德

我正在尝试使用* 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我想通了,我的*运算符正在返回一个指针,我在想它返回&。谢谢你们

迈克·西摩

如果映射类型为std::map或符合标准“关联容器”接口的相似名称,则它包含类型为的键-值对,std::pair<const K, V>这是在取消引用迭代器时所得到的。

要访问该值,您需要该对中的第二个元素:

V & value = it->second;

如果地图类型不符合标准接口,则需要查看其文档;我无法猜测它可能如何工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用另一个容器中的迭代器填充一个容器

实现一个QAbstractItemModel迭代器

Qt:为模板(地图,列表,集合等)构造一个可变的迭代器

用一个迭代器迭代向量的向量

->第一/第二个到一个空的地图迭代器开始

实现一个自定义迭代器,该迭代器会跳过WeakSet中的nil个元素

如何检测地图迭代器中的最后一个元素

如何在 Scala 中为具有一个或多个值的容器实现 ADT

在Laravel中,如何在测试时为服务容器提供另一个实现?

在同一个类中实现多个迭代器

获取每行输入第一个单词的迭代器的简单实现

实现一个函数,该函数将迭代 n 大小的形状容器并使用 JavaScript 求和它们的面积

如何使用一对迭代器(第一个,最后一个)在模板中创建一个容器?

使用boost迭代器针对地图的每个键在值容器的每个元素上实现迭代器

如何从另一个地图迭代一个地图?

创建一个蛮力迭代器

如何通过一个地图在Java迭代?

为嵌套的HashMap实现Java迭代器,其中的元素可以是1)整数或2)另一个嵌套HashMap或3)空的HashMap中的任何一个

地图容器被另一个实例重用

用一个迭代器将列表分成两部分的Python方式

用迭代器构建一个字符串

为abstractCollection实现迭代器

检测迭代器是否为std :: map的最后一个元素

Stylus:为一个规则迭代多个选择器

为矩阵迭代器在+ =之间集成一个条件(可能对数学有挑战)

是否应该将迭代器定义为另一个类?

关于检查对象是否为Python中的迭代器的一个示例的困惑

用ruby实现的算法,将一个数字加到表示为数组的数字上

STL容器中的迭代器实现