Questions tagged «range-v3»

1
为什么范围不能用于管道库功能?
乔纳森博卡拉(作者流利C ++)写了一个叫做库的管道。 存储库主页上说的“管道”与范围的使用不同,尽管看起来相同:它不是基于惰性拉动,而是急于推动。但有人指出,不能使用范围库执行各种“管道”操作。例如: 解压缩-采取一个压缩输入-本质上是一系列k元组-并产生k个独立的独立输出。 fork-产生容器/范围的多个(独立)副本。 我不太明白原则上为什么会这样。(当然,除了无法获得最终迭代器/前哨的范围之外。)

1
我们将能够使用C ++ 20构建具有视图的容器吗?
C ++ 20标准版本将范围引入C ++。 我的问题:我们能否构造(现有)任何范围的标准库容器?更重要的是,具有范围视图吗? 例如,这将: #include <vector> #include <iostream> #include <ranges> int main() { auto sq = [](int x) { return x * x; }; std::vector<int> vec { 3, 4, 5 }; std::vector<int> squares { std::ranges::views::transform(vec, sq) }; for(auto i : squares) { std::cout << i << ' '; …
10 c++  c++20  range-v3 

2
我可以将临时管道返回到范围操作吗?
假设我有一个generate_my_range模拟a 的类range(尤其是is regular)。然后,以下代码正确: auto generate_my_range(int some_param) { auto my_transform_op = [](const auto& x){ return do_sth(x); }; return my_custom_rng_gen(some_param) | ranges::views::transform(my_transform_op); } auto cells = generate_my_range(10) | ranges::to<std::vector>; 是my_custom_rng_gen(some_param)由(第一个)管道运算符按值获取的,还是离开generate_my_range范围后是否有悬挂的引用? 函数调用会一样ranges::views::transform(my_custom_rng_gen(some_param),my_transform_op)吗? 如果我使用左值引用会正确吗?例如: auto generate_my_range(int some_param) { auto my_transform_op = [](const auto& x){ return do_sth(x); }; auto tmp_ref = my_custom_rng_gen(some_param); return tmp_ref | …
9 c++  range-v3 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.