”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何将范围管道与临时容器一起使用?

如何将范围管道与临时容器一起使用?

发布于2024-11-12
浏览:944

How Can I Use Range Pipelines with Temporary Containers?

使用临时容器编写范围管道

在 range-v3 中,当使用使用返回 a 的第三方函数的管道时向量,有必要创建一个管道,将该函数映射到该范围的所有元素,并将所有结果向量展平到一个范围及其所有元素elements.

最初,人们可能会尝试编写一个管道,例如:

auto rng = src | view::transform(f) | view::join;

然而,这种方法以前是不可行的,因为不可能创建像 f.

生成的临时容器的视图。

auto rng = views::iota(0, 4)
        | views::transform([](int i) { return std::string(i, char('a'   i)); })
        | views::cache1
        | views::join('-');

auto rng =views::iota(0, 4) |视图::变换([](int i) { return std::string(i, char('a' i)); }) |视图::缓存1 | views::join('-');

这确保管道正确处理临时容器,使我们能够编写有效利用临时容器的范围管道。

auto rng = src | views::transform(f) | views::cache1 | views::join;

auto rng = src |视图::变换(f) |视图::缓存1 |视图::加入;How Can I Use Range Pipelines with Temporary Containers?

最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3