问题标签 [boost-iterators]
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.
c++ - transform_iterator 编译问题
你好,
我不喜欢发布编译问题,但我真的无法解决这个问题。使用此代码:
得到这个编译错误:
谁能解释为什么这不起作用?我正在使用带有 boost 1.36.0 的 Visual Studio 7.0
谢谢。
c++ - boost迭代器适配器的编译器错误
我正在尝试使用 boost 迭代器适配器为 CArray MFC 类编写一个简单的 STL 迭代器。这是我的代码:
使用 VC9 编译器可以很好地编译。但是当我尝试用 VC7 编译它时,我得到以下错误:
\include\boost\iterator\iterator_traits.hpp(49) : erro r C2039: 'difference_type' : is not a member of 'boost::detail::iterator_traits< Iterator>' with [ Iterator=int ]
\include\boost\mpl\eval_if.hpp(41) :参见使用 [ Iterator=int ] 编译的类模板实例化 'boost::iterator_difference' 的参考
.... 多一点 ....
有什么线索可能是错的吗?我必须包含其他一些头文件?我对提升图书馆很陌生。
c++ - 使用 boost::iterator
我想提供两种迭代器:
第一个集合,常规迭代器,可以指向任何元素,无论是设置的还是未设置的。如果它们被读取,它们返回设置值,或者value_type()
,如果它们被写入,它们创建元素并返回左值引用。因此,它们是:
随机访问遍历迭代器和可读可写迭代器
第二个集合,稀疏迭代器,仅迭代集合元素。由于它们不需要懒惰地创建写入的元素,因此它们是:
随机访问遍历迭代器和可读可写和左值迭代器
我还需要两者的 const 版本,它们是不可写的。
我可以填空,但不确定如何使用 boost::iterator_adaptor 开始。
这是我到目前为止所拥有的:
还有,这是违法的吗?
c++ - 迭代指针向量的 getter
我正在尝试编写一个迭代器类,它在取消引用时返回一个 getter 函数返回值。代码工作正常,我唯一的问题是我想只使用一个模板参数而不是 3 来编写 member_ptr_functor,因为我应该能够从成员函数类型中推断出参数的类型和返回值。我认为有问题的是参数类型,我尝试使用 boost::remove_ptr&,但我无法编译它。
哈盖。
c++ - 如何让迭代器进入 boost fusion map?
我正在尝试获取迭代器boost::fusion::map
,但我错过了一些东西。
以下适用于boost::fusion::vector
:
输出:
我想做类似的事情,fusion::map
但它无法编译:
我包括这些:
错误:
c++ - 跳过迭代器
我有一个值序列,我想将它们传递给一个需要一(iterator begin, iterator end)
对的函数。但是,我只希望处理原始序列中的每个第二个元素。
有没有一种使用 Standard-Lib/Boost 的好方法来创建一个允许我传入原始序列的迭代器外观?我认为像这样简单的东西已经在 boost 迭代器或范围库中,但我没有找到任何东西。
还是我错过了另一种完全明显的方法?当然,我知道我总是可以选择将值复制到另一个序列,但这不是我想要做的。
编辑:我知道filter_iterator
,但是过滤值 - 它不会改变迭代前进的方式。
c++ - 使用 C++ 迭代器从文件中读取列表?
我正在尝试从文件中读取/反序列化元素列表(然后过滤掉其中的一些)。为此目的使用迭代器是一种有用的方法吗?
我目前的尝试是
这没有正确地释放内存(例如,readNew 返回一个指向新 Elem 的指针),这样做的正确方法是什么?另外,如何实际使用这样的迭代器,如何确定结果?还是有比使用迭代器更好的方法?
c++ - 在 boost 中,如何将 boost 迭代器传递给以 std::string 形式转换的函数
请参阅以下代码末尾的特定问题作为注释。
c++ - Boost:迭代图像区域
我有我不拥有的图像,带有相邻的单色像素,我目前使用哑指针增量对其进行迭代。
我现在需要迭代 2D 区域,所以我正在考虑提供高效且易于编写的迭代器的最佳方法。
我只需要forward_iterator。如果我有一个 10x10 的图像,并且我想在 4x3 的左上角区域进行迭代,它将在这些元素上进行迭代:
我有两个选择:
- 用手写
boost::iterator_facade
- use
boost::range_iterator
,它给了我一个数组的迭代器,并修改它的行为boost::iterator_adaptor
你认为最好的是什么?
c++ - Boost双向迭代器不可写的问题
我尝试使用 Boost Iterator 制作双向迭代器。我已经按照此处文档中的建议实现了一些功能。
我有一个父类,其中要实现的函数被声明为纯虚拟(我需要多态迭代器)。目前,我有一个实现功能的继承类。此外,我使用 boost::bidirectional_traversal_tag。
dereference() 函数在继承类中实现如下:
像下面的例子一样读取值,它工作得很好:
(其中 isEndReached() 是个人功能)。问题是以下代码不起作用:
g++ 返回以下错误:
怎么了 ?
谢谢