c++ - 具有来自另一个向量的更新数据的向量范围构造函数
问题描述
是否可以vector< pair <int,int> >
使用另一个范围构造函数创建vector<int>
?例如。
vector < pair <int, int>>
其中第一个是vector<int>
数据,第二个是索引。
解决方案
您想转换原始向量,例如,使用可变 lambda:
int main () {
std::vector<int> foo{1, 2, 3, 4};
std::vector<std::pair<int, int>> bar;
int i = 0;
std::transform(foo.begin(), foo.end(), std::back_inserter(bar), [i](int x) mutable {return std::make_pair(x, i++);});
}
范围构造函数将不起作用,因为您需要转换运算符,因此该transform
算法是最佳选择。您可以将它包装在一个函数中,然后它的行数与范围构造函数相同。
推荐阅读
- haskell - 堆栈在haskell中运行分析
- node.js - 如何摆脱反向 nginx 代理中更多服务器块中的 404 错误代码
- r - 如何定义具有 2 列的指标
- angular - ngAfterViewChecked 卡在循环中
- typescript - TypeScript 分布式条件类型 - 附加类型参数约束
- python - 无法在 COALESCE pypher 中设置列表类型值
- testng - io.cucumber.junit.CucumberOptions vs io.cucumber.testng.CucumberOptions vs cucumber.api.CucumberOptions 我应该选择哪一个
- arrays - Sed - 前面的正则表达式无效
- c# - proto2 无法读取 proto3 消息
- matlab - 加载 .m 矩阵