问题标签 [range-v3]
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++ - Range v3. Difference between two ranges
I am trying to get the difference between two ranges but have little luck. Something like
By the way. Are there any good writings on range-v3? Something to make me wiser?
Thanks.
c++ - 使用 Ranges-v3 view::join 保持双向性
我在view::join
使用(惊人的) Ranges-v3 库的函数对象时遇到了一些困难。我的客户端代码依赖于返回方法(并且非常感谢随机访问迭代器)的存在,以获取范围集合的聚合视图。
在查看了相关文档之后,似乎一种back
方法与 join_view 类模板的实例化兼容,但我一直无法将其实例化。
编译器错误消息的相关位是:
第一个要求似乎是强制正确使用 CRTP,这是满足的。所以join_view
违反了BoundedView
或BidirectionalView
概念(或两者)。我能够迅速消除前者作为一种可能性。
在这种情况下,flat
满足BoundedView
概念,但错误消息保持不变。
为了验证BidirectionalView
,我尝试检查了 的迭代器join_view
,但遇到(可疑的)是一个错误。
我已经编写了一个实时版本以便于检查。
有没有人有任何运气实例化双向join_view
?关于如何在不复制基础数据的情况下实现类似行为的任何建议?
c++ - 未能在 range-v3 中的斐波那契数列上调用反向
我似乎无法对使用's生成的斐波那契数view::reverse
列的前 10 个元素(使用)进行操作view::take(10)
v
range-v3
view::generate
我收到以下错误(随后是更多与模板相关的输出):
但是,如果我view::iota
用来创建v
,例如,
我没有收到错误和预期的输出。
怎么了?
c++ - v3 make_iterator_range 要求
我正在尝试将我的范围(一对迭代器)转换为,iterator_range
以便我可以利用所有视图和操作。我能够将我的范围转换为 boost::iterator_range,但在转换为 range::v3 时出现编译失败。这是一个最小的例子:
看起来我需要做一些事情来满足 的Sentinel
概念iterator_range
,但我无法弄清楚是什么。任何帮助表示赞赏!
编辑:我正在使用 gcc54 -std=c++14 进行编译。range v3/c++ 编译错误有点长,但这里有一个片段:
c++ - shuffle action in ranges-v3
Since the ranges-library is up for inclusion into the standard I was toying around with it for a while and I have some problems with very basic concepts.
The toy example I am struggling with is this:
The fact that it is not printable kind of suggests to me that t is not really a proper range. Unfortunately the documentation (where there is any) really abuses auto, so I do not know what is going on. What do I have to do, why do I have to do it (and in case anyone does know: how is the result type going to be documented (imo proxy objects and auto don't mix well - see the Eigen library as an example)).
My second question is related to the cargo-culted action::push_back. If I omit it I get a concept error telling me that the iota-generated view needs to be mutable. Obviously a view is by design immutable, so I get the problem here, but is "pushing nothing" really the preferred way to lift things into a mutable/stateful object or are there alternatives?
Best, Richard
c++ - 管道中 lambda 的意外生命周期
我正在使用范围视图的管道,我想对输出进行完整的转换并保持管道运行。我知道我无法返回新范围的副本,因为它不会存在于任何地方。我不明白为什么我不能将存储保存在 lambda 的闭包中。
当我进行发布构建时,这是可行的,但是当我进行调试构建时,会出现段错误。如果我map
将counter
lambda 中的 更改为静态并将捕获更改为引用,那么这当然可以(但显然很丑陋)。
我真正不明白的是为什么从counter
(以及随之而来的闭包)返回的 lambda 的生命周期至少不如变量的生命周期长steps
。
c++ - 如何连接两个现有范围::view?
我想使用现有视图进行连接。在代码中:
换句话说 - 如何创建多个向量的视图,这些向量的数量直到运行时才知道?
c++ - 如何使用 range-v3 创建 view_facade
我正在研究分层实体组件系统。之所以称为层次结构,是因为一个实体可能由多个实体组成。
我的层次结构实现为几个链表。虽然,我不依赖几个std::list
or std::forward_list
。实际上,我有两个向量:1)将一个实体映射到它的第一个孩子;2)将一个孩子映射到它的下一个兄弟姐妹。
我想ranges::view
在这个结构上创建一个,但似乎我忘记了一些东西。
我想以这种方式使用范围(GitHub上的完整代码):
当然,使其可用于处理与前向范围兼容的视图和操作(我不太习惯于概念习语)。
这是我要修改的代码部分:
c++ - range v3 展平序列
所以我最近看了这个关于 c++ 的演讲: https ://www.youtube.com/watch?v=mFUXNMfaciE
我非常有兴趣尝试一下。因此,在一些玩具程序之后,我被困在如何正确地将向量向量展平为向量。根据此处的文档:https ://ericniebler.github.io/range-v3/这可以使用ranges::view::for_each
. 但是我似乎无法让它工作。这是一些最小的代码。