Pregunta Manera conveniente de convertir vector a vector


¿Hay alguna forma conveniente en C ++ para convertir un vector en un vector que no sea el uso del algoritmo de transformación y el flujo de datos?

¡Muchas gracias por tu ayuda!


5
2017-08-11 01:26


origen


Respuestas:


lexical_cast es bastante "conveniente".

for(size_t i = 0; i < vec.size(); ++i) {
  vec2.push_back(boost::lexical_cast<double>(vec[i]));
}

Por supuesto, esto se vuelve aún más divertido con std::transform:

std::transform(strings.begin(), strings.end(), 
               std::back_inserter(doubles), 
               boost::lexical_cast<double, std::string>); // Note the two template arguments!

atof también podría adaptarse a sus necesidades, recuerde incluir cstdlib:

std::transform(strings.begin(), strings.end(), std::back_inserter(doubles), 
               [](const std::string& x) { return std::atof(x.c_str()); });

9
2017-08-11 01:30