Answers:
使用std::vector
的范围构造函数:
std::vector<int> intVec;
std::vector<double> doubleVec(intVec.begin(), intVec.end());
copy(v_int.begin(), v_int.end(), back_inserter(v_float));
或v_float.resize(v_int.size()); copy(v_int.begin(), v_int.end(), v_float.begin());
std::distance()
“如果它是随机访问迭代器,则该函数将使用operator-进行计算。否则,该函数将反复使用递增运算符(operator ++)。” 因此,在这种情况下,可以通过减去迭代器来找到元素数量。是否将标准库实现为将std :: distance用作初始reserve()是另一个问题,但是godbolt.org/z/6mcUFh至少包含对std :: distance()的调用。
std::copy(...)
功能吗?您可以将其添加到答案中吗?