2

请指导我如何转换字符串向量

std::vector<string> strVect; --> std::vector<float or double> flVect;

(例如 strVect 包含像 { "0.1111", "0.234", "0.4556"} 这样的值)

使用 c++ 转换成一个浮点向量。

提前致谢。

4

2 回答 2

3

除了现有的答案,一个非常简单的方法是使用 C++11 字符串转换函数和 C++11 lambda:

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

于 2012-10-12T14:09:35.160 回答
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];
}
于 2012-10-12T13:44:59.913 回答