C + + 将向量 < int > 转换为向量 < double >

什么是一个好的干净的方式转换 std::vector<int> intVecstd::vector<double> doubleVec。或者,更一般地,转换两个可转换类型的向量?

101138 次浏览

使用 std::vector的范围构造函数:

std::vector<int> intVec;
std::vector<double> doubleVec(intVec.begin(), intVec.end());

使用 std::transform算法:

std::transform(intVec.begin(), intVec.end(), doubleVec.begin(), [](int x) { return (double)x;});