10得票2回答
范围的范围转换为向量的向量

假设我有一个名为rng的T范围。我可以这样做: auto groups = ranges::view::group_by(rng, bin_op); 现在的groups是由多个T类型的范围组成的范围。 我也可以做到这一点。 auto groups = ranges::view::gr...

7得票1回答
ranges-v3的join函数用于将两个容器连接起来。

我一直在尝试理解Range-v3的join文档,但坦率地说,我不理解它。而且我也找不到任何相关的例子。 请问有人能向我展示如何创建两个双端队列向量的连接视图吗?我已经尝试过这些方法,但都没有成功。 #include <range/v3/all.hpp> #include &lt...

77得票6回答
如何编写使用临时容器的范围管道?

我有一个带有以下签名的第三方函数: std::vector<T> f(T t); 我还有一个现有的可能是无限范围 (range-v3排序) 的T类型命名为src。我想创建一个流水线,将f映射到该范围的所有元素,并将所有向量展平为具有所有元素的单个范围。 本能地,我会写如下代...

7得票1回答
将范围分割成多个重叠范围的范围。

我将使用Ranges-V3库来将值的容器分割成一个范围的范围,使相邻的范围共享边界元素。 请考虑以下内容: using namespace ranges; std::vector<int> v = { 1, 2, 3, 0, 4, 0, 5, 0, 6, 7, 8, 0, 0...

7得票2回答
如何编写一个与随机重排相关的range-v3操作?

使用range-v3库(由@EricNiebler开发)可以使算法代码更加简洁,例如以下是如何生成一堆随机数的示例代码: #include <range/v3/all.hpp> #include <iostream> #include <vector> ...

9得票2回答
我可以翻译为:我能否返回一个被管道传递到范围操作的临时值?

假设我有一个名为generate_my_range的类,它模拟了一个range(特别地,是regular)。那么下面的代码是否正确: auto generate_my_range(int some_param) { auto my_transform_op = [](const ...

14得票2回答
使用Range v3 ranges,如何将视图和操作组合成一个单一的管道?

我正在学习C++20的ranges(使用Range-V3-VS2015)。我有这段代码,它可以正常工作:string clean; auto tmp1 = input | view::remove_if(not_alpha) | view::transform(::tolower); std:...

9得票6回答
是否可以/建议返回范围?

我使用ranges库来帮助过滤我的类中的数据,像这样: class MyClass { public: MyClass(std::vector<int> v) : vec(v) {} std::vector<int> getEvens() const...

9得票3回答
如何使用rangev3范围实现flatmap?

我在C++中实现了一个相当简单的flatmap函数,用于std::vector,但有人建议使用范围更好。这是基于向量的解决方案: // flatmap: [A] -> (A->[B]) -> [B] template<typename T, typename ...

12得票2回答
为什么ranges::ostream_iterator需要默认构造函数?

这个问题是在评论这里的讨论之后提出的。 在Eric Niebler的ranges-v3库中(它正在成为C++20标准的一部分),ranges::ostream_iterator是可以默认构造的 - 没有一个ostream。 怎么回事? 我认为,在C++中,使用有效构造进行“虚构”构造是一...