请指导我如何转换字符串向量
std::vector<string> strVect; --> std::vector<float or double> flVect;
(例如strVect包含{{0.1111“,”0.234“,”0.4556“}等值。
使用c ++进入浮点数向量。
提前致谢。
答案 0 :(得分:2)
这是一个不使用boost的解决方案:
std::vector<string> strVect;
//...
std::ostringstream ss;
std::vector<double> flVect( strVect.size() );
for( size_t i = 0; i < strVect.size(); ++i )
{
ss.str(strVect[i]);
ss >> flVect[i];
}
答案 1 :(得分:2)
除了现有的答案,一个非常简单的方法是使用C ++ 11字符串转换函数和C ++ 11 lambdas:
std::vector<string> strVect = ...;
std::vector<float> flVect(strVect.size());
std::transform(strVect.begin(), strVect.end(), flVect.begin(),
[](const std::string &arg) { return std::stof(arg); });
类似于double
,当然只有std::stod
。