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

问题描述 投票:-2回答:1

是否有可能使用另一个vector< pair <int,int> >的范围构造函数创建vector<int>?例如。

vector < pair <int, int>>

首先是vector<int>数据,第二是索引。

c++ vector constructor
1个回答
3
投票

您想要转换原始矢量,例如,使用可变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算法是最佳选择。您可以将其包装在函数中,然后它与范围构造函数的行数相同。

© www.soinside.com 2019 - 2024. All rights reserved.