向量范围构造函数与另一个向量的更新数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了向量范围构造函数与另一个向量的更新数据相关的知识,希望对你有一定的参考价值。

是否有可能使用另一个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算法是最佳选择。您可以将其包装在函数中,然后它与范围构造函数的行数相同。

以上是关于向量范围构造函数与另一个向量的更新数据的主要内容,如果未能解决你的问题,请参考以下文章

在构造函数中创建的外部向量

无法从构造函数中将数组值传递给向量

指针向量的复制构造函数

代码失败在向量数据前插入数字

使用 MATLAB mex 将向量与另一个向量分配时出现分段错误

运行时在构造函数中初始化向量类成员——C++