问题标签 [boost-range]
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++ - 将 Boost 适配器与 C++11 lambda 配合使用
我试图编译这段代码:
编译失败并显示以下错误消息(在长模板实例化小说之后):
我搜索了这个问题,并在 Boost Users 邮件列表存档中找到了这个问题。它建议使用#define BOOST_RESULT_OF_USE_DECLTYPE
将解决问题。我把它放在我的代码的最开始,但它仍然没有编译。错误信息的长度似乎短了很多,但最后的错误信息是一样的。我目前正在使用 Boost 1.50。
这里有什么问题?有什么办法可以使这项工作?
c++ - boost transform iterator and c++11 lambda
I'm trying to use boost::adaptors::transformed by providing a c++0x lambda to the adaptor.
The following code does not compile. I'm using g++ 4.6.2 with boost 1.48.
Any ideas on what I'm doing wrong here?
c++ - Boost::Range 中的 itertools.tee 等价物?
Pythonitertools
具有tee
用于 n 复制迭代的功能:
我在Boost::Range
. 我错过了什么还是应该自己动手?
c++ - boost::iterator_range 来自模板化迭代器
我正在尝试itertools.tee
为 Boost::Range 编写 Python 的 C++ 版本(如此处所示)。这是我的第一次尝试:
但是一旦我尝试使用它:
它吹在我的脸上,抱怨(和其他人)失踪value_type
。boost::detail::iterator_traits<tee_iterator<std::list<int, std::allocator<int> > > >
我错过了什么?tee_iterator
做孩子std::iterator
还不够吗?
c++ - 在 Boost::range 中组合适配器
我开始使用 Boost::Range 以便在 C++ 中拥有一个惰性转换管道。我现在的问题是如何将管道分成更小的部分。假设我有:
我想用 a 替换前两张地图magic_transform
,即:
一个人会怎么写magic_transform
?我查阅了Boost::Range 的文档,但我无法很好地掌握它。
附录:我正在寻找这样的类:
c++ - boost::range_iterator 和 boost::iterator_range 混淆
我一直在浏览boost::range
图书馆并注意到boost::range_iterator
和boost::iterator_range
。我在这里对这些术语感到困惑。谁能解释一下两者之间的区别以及何时使用什么?此外,如果您能指出我使用 boost range 库的示例示例来了解更多关于它的信息,那将是很好的。
c++ - boost::adaptors::transformed 后跟 boost::adaptors::filtered 调用函数两次
我正在尝试将 a (让我们称之为)链接boost::adaptors::transformed
到map
a boost::adaptors::filtered
(让我们称之为filter
) - 这个想法是映射 a在一个范围内fun
返回“也许”(在我的情况下是 a std::pair<bool, T>
)并仅输出部分结果。我的第一个实现:
当我运行它时,我得到:
每次predicate
is true
,fun
都会被调用两次。这是预期的行为吗?我做错了什么,或者这是/是Boost中的一个错误(我使用的是1.48)?
编辑:我在 Boost 的主干版本上试过这个,它仍然会发生。
stl-algorithm - 使用具有提升范围的变换算法
嗨,我正在尝试使用 boost.range 添加两个标准向量,但我得到了一堆错误。
这有效:
这不会:
有一个错误:
这也不是:
有一个错误:
c++ - 负升压范围过滤适配器
是否有可能/可实现否定升压滤波适配器,例如
而不是在 lambda 表达式中进行否定?
动机:我经常使用过滤器和 lambda 函数,但是当我多次使用过滤器时,我通常将其重构为自定义过滤器,例如
现在,当我需要否定时,我正在为他们构建一个自定义过滤器,例如
但我会发现能够否定过滤器会更好,例如
c++ - 升压范围适配器类似于 transform 可以访问相邻元素
我想创建一个由给定范围的相邻值转换的范围。有没有办法做到这一点?因此,我想制作一个在下面的代码中描述的相邻转换。
另一个快速的问题:将右值传递Func()
到范围适配器中是否安全boost::adaptors::transformed
?据我测试,它按预期工作。如果它是安全的,是否将 Func() 复制到transformed
? Func()
那么,复制成本高怎么办?
抱歉,如果这不是一个相关问题,但我不够熟练,无法理解提升范围的内部结构。