Vector de conversión C ++ vector

¿Cuál es una buena manera de convertir un std::vector intVec a std::vector doubleVec . O, más en general, para convertir dos vectores de tipos convertibles?

Use el constructor de rango de std::vector :

 std::vector intVec; std::vector doubleVec(intVec.begin(), intVec.end()); 

¿Algún problema? Puedo ejecutar en mi PC. Mi IDE es Code :: blocks.

 #include  #include  #include  using namespace std; int main() { vector v_int; for (int i=0; i<10; ++i) { v_int.push_back(i); } vector v_float(v_int.begin(), v_int.end()); copy (v_float.begin(), v_float.end(), ostream_iterator(cout, " ")); cout < < endl; return 0; }