问题标签 [std-ranges]
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++ - 用户定义的容器不适用于 std::ranges
我无法让我的用户定义容器与 std::ranges 一起使用。如果迭代器只是一个,我的容器可以工作,int*
但是一旦我创建自己的迭代器类,我就会得到编译器错误。
这行得通。
使用我自己的迭代器它不起作用。
为了完成这项工作,是否需要做一些新的事情std::ranges
?
我正在使用 Visual Studio 16.8.4(写作时的最新版本)进行编译,编译错误是
但是 GCC 给出了同样的错误。
我找到了如何制作范围视图的例子,但没有一个例子告诉我如何制作我自己的迭代器。
c++ - 为什么 std::ranges::view_interface 使用 CRTP
根据 cppreference,view_interface
使用奇怪重复模板模式 (CRTP) 技术定义视图的帮助类模板。
它们背后的设计理念是什么?与在派生类中覆盖虚拟基类方法相比,是否有显着优势?
c++ - C++20 范围太多 | 运营商?
我为此代码使用 g++ 10.2。有谁知道为什么我最后一个编译器std::views::reverse
错误results3
?
错误片段:
完整的错误集可以在这里看到:https ://godbolt.org/z/Y7Gjqd
c++ - 在自定义容器上使用范围算法
我想升级我的自定义容器以与std::ranges
诸如find_if
和其他算法兼容,如下所示
std::ranges::find_if
喜欢的签名
什么是input_range 概念以及我自己的自定义容器如何支持此功能?
c++ - 我可以/应该使用范围库来模拟集合函数吗?
我想将 aview::filter
应用于一个向量,以便找到它与另一个向量的 set_intersection(或 set_difference 等)。
我这样做的兴趣在于它允许您更改原始容器的特定子集(并且还可以节省一些附带的复制std::set_intersection
)。
这或多或少是我想要做的:
然而,这段代码看起来非常低效,因为它会多次迭代 set2。ranges
图书馆有没有更好的方法来实现这一点?
c++ - C++20 Streams 又名 Ranges
当我使用 Stream Library ( http://jscheiny.github.io/Streams/api.html# ) 时,我可以在 Java-Streams 中执行类似的操作:
它给出了这个输出:
在 C++20 中,我发现了范围,它们看起来有望实现相同的目标。但是,当我想构建类似的函数式编程风格时,它不起作用:
尽管像这样的文章( https://www.modernescpp.com/index.php/c-20-the-ranges-library)提出了这样的功能,但接缝范围的事情并不意味着像这样工作。
有什么想法我仍然可以在 C++20 中做类似的事情吗?
c++ - 如何旋转向量的特定子集?
我想在整个向量内旋转向量的子集。要旋转的子集由另一个向量定义。
我想要实现的是:
给定的子集保证包含在更大的整个集合中。子集可以是整体的任何子集,以任何顺序;它不必是连续的。
这是我迄今为止尝试过的:
这行得通,但是对我来说感觉有点粗略。我想知道是否有一些巧妙的方法可以使用Ranges
C++20 中的库来做到这一点。像这样的东西:
我对 Ranges 库还没有很好的了解,但我认为这样的事情应该是可能的。
请注意:我希望解决方案在某种程度上使用简单std::rotate()
。这样做的原因是我也想在子集上执行其他类似的功能(即std::shuffle()
),所以在最终版本中执行旋转/洗牌/任何东西的实际功能将是一个变量。这是我在这里真正感兴趣的“更改子集”部分;其余的将在稍后合并。
c++ - 为什么我不能在 `const filter_view` 上调用 `ranges::begin`?
我不能ranges::begin
打电话const filter_view
https://en.cppreference.com/w/cpp/ranges/filter_viewbegin
似乎end
不是const
。
_ 这是为什么?
c++ - c++20 使用结构成员变量和 std::ranges 对结构进行排序向量
我有一个简单的结构
我有一个向量MyStruct
s。
myStructs
我将如何根据成员变量.x
使用排序std::ranges
?
c++ - 无法满足范围约束::count()
我正在探索范围函数。
count_if 按预期运行。计数表达式在 MSVS 2019 中生成错误。
错误 C7602 'std::ranges::_Count_fn::operator ()': 不满足关联的约束 D:\Test\Code\Ranges\Ranges.cpp
它指向我的标准算法头。我显然不理解为 count 函数列出的唯一约束的indirect_binary_predicate。阅读 cppreference.com 是……没有帮助:-)。
我在这里想念什么?