分配兼容向量?

dar*_*une 2 c++ vector

假设您有一个类型的向量要分配给另一种不同类型的向量?

#include <vector>

int main() {
    std::vector ints = {0,1,2,3};
    std::vector<long long int> llints =  ints;//compile error here
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

自己试试

这怎么可能用一个单行(一个表达式),而不是使用 lambda,只使用stdboost

jua*_*nza 5

如果要构造,可以使用两个迭代器构造函数

std::vector<long long int> llints(ints.begin(), ints.end());
Run Code Online (Sandbox Code Playgroud)

如果要分配给现有向量,可以使用两个迭代器std::vector::assign成员函数:

std::vector<long long int> llints;
...
llints.assign(ints.begin(), ints.end());
Run Code Online (Sandbox Code Playgroud)