c++11 - 将结果存储在带有范围的 zip 视图中
问题描述
我有两个向量,我想对它们都应用基于第三个向量的变换
std::vector<int> out1;
std::vector<int> out2;
std::vector<int> in1;
std::transform(std::begin(in1), std::end(in1), std::begin(out1), transform1);
std::transform(std::begin(in1), std::end(in1), std::begin(out2), transform2);
这需要两个循环,所以我尝试使用 range-v3 中的 zip 范围来完成
std::vector<int> out1;
std::vector<int> out2;
std::vector<int> in1;
auto &zip = ranges::zip(out1, out2);
std::transform(std::begin(in1), std::end(in1), std::begin(zip), transform1and2);
然而,这具有将 1 和 2 的转换嵌入到同一函数中的缺点,需要对其进行修改以返回 std::pair。
有没有更清洁的方法来做到这一点?
解决方案
推荐阅读
- c# - 如何使用c#实现从工具箱拖放到设计窗口?
- vue.js - VueJS 全局使用 css 模块
- javascript - 当屏幕尺寸变小时,按钮会超出其 div
- javascript - 无论如何,我可以为谷歌散点图添加放大和缩小吗?
- python-3.x - 从同一类标签中抓取文本
- powershell - Powershell-MS Word docx 表到 csv
- ansible - 从变量向模板添加值
- flutter - 如何在 Flutter 中为装饰图像创建线性渐变模糊?
- mysql - 像 Uber Cream App 我们从管理员添加地理围栏区域,我们如何阻止受限区域的 api 请求不属于类似于地图的圆圈
- qt - 为嵌入式 QWindow 中的 QWidgetWindow 收到外部 WM_DESTROY