问题标签 [iterator-facade]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1781 浏览

boost - boost迭代器外观和dereference()函数

我正在尝试创建一个迭代器,它只能取消引用实际值类型,而不是引用。这是否可以使用boost::iterator_facade,或者它是否需要我拥有可以由地址\引用返回的值。

更具体地说,我的迭代器返回一个std::pair引用,这意味着我的迭代器value_type没有存储在任何地方,而是在取消引用时动态创建(如std::map::iterator)。

0 投票
0 回答
862 浏览

c++ - 为二叉树实现预排序迭代器时遇到问题

我正进入(状态,

这是完整的错误(pastebin)

编辑

这是我的BinaryTree课,

这是我的main()

解决方案

改为virtual void increment() = 0

感谢大家的帮助,:)

0 投票
2 回答
536 浏览

c++ - 使用 boost::iterator_facade<> 为迭代器返回 ref,但为 const_iterator 返回 const_ref?

我有这样的课,

value_type不依赖于类的常量BSTNode。这就是为什么我必须保留这const_cast<value_type&>()部分。如何确保const_iteratorreturn aconst_refiterator返回 modifiable ref?这是相关的typedef,

和节点类,

0 投票
1 回答
435 浏览

boost - boost::iterator_facade 上的编译错误

我正在学习 boost::iterator_facade。这是一本书的示例代码:

这是测试代码:

但是,我收到以下编译错误:

所以我尝试用 step_iterator::reference 替换 'reference',这次我得到以下错误:

0 投票
1 回答
682 浏览

c++ - 将 JsonCPP ValueIterator 与 STL 算法一起使用

我知道,ValueIteratorJsonCPP 不能直接用于标准 STL 算法。但是是否有一些“间接”的方式在 STL 算法中使用它(可能通过Boost.Iterator或类似的东西)?我想要以下内容:

0 投票
1 回答
716 浏览

boost - 如何在扩展 boost::iterator_facade 时删除我的迭代器具有非虚拟析构函数的警告?

使用 -Weffc++ 编译并扩展 boost::iterator_facade 时,我收到编译器警告:基类具有非虚拟析构函数。我能做些什么来解决这个问题?

这是示例代码:

我在 Fedora 19 上编译如下:

这是实际的警告:

谢谢。

0 投票
1 回答
3594 浏览

java - 如何包装 java.util.Iterator 以更改被迭代对象的类型

我正在为第三方 API 提供一些外观类,我需要包装一个迭代器,以便我可以用我自己的外观对象替换迭代的内容。

这是我的外观类的简化版本,它包装了一个名为Item的 API 类

API 提供了这种形式的迭代器Iterator<Item>

我需要实现Iterator<FacadeItem>由 API 的迭代器支持的这种形式的迭代器。

我考虑使用 Guava 库中的ForwardingIterator如下:

next()但是编译器不允许Override ,因为它期望返回的类型是Item,而不是FacadeItem

0 投票
1 回答
395 浏览

boost - boost::iterator_facade operator->() fails to compile

Consider the following code:

So the iterator facade shall return a reference to Data type. This works well when dereference operator is called but compile fails when operator->() is called. So I am a bit confused because operator->() tries to return a std::map::iterator. Any ideas ?