在C ++中有没有方便的方法将矢量转换为矢量而不是使用变换算法和istringstream?
非常感谢你的帮助!
答案 0 :(得分:9)
lexical_cast
非常方便"。
for(size_t i = 0; i < vec.size(); ++i) {
vec2.push_back(boost::lexical_cast<double>(vec[i]));
}
当然,使用std::transform
:
std::transform(strings.begin(), strings.end(),
std::back_inserter(doubles),
boost::lexical_cast<double, std::string>); // Note the two template arguments!
atof
也可以满足您的需求,请记得加入cstdlib
:
std::transform(strings.begin(), strings.end(), std::back_inserter(doubles),
[](const std::string& x) { return std::atof(x.c_str()); });