我有一个字符串向量,如
我想将每个元素转换为double,并存储在
像这样
我知道
我正在寻找类似于:
{"1.2","3.4","0.5","200.7"}
。我想将每个元素转换为double,并存储在
vector<double>
中。像这样
{1.2,3.4,0.5,200.7}
最好的方法是什么?我知道
std::stod(string, size)
;但我希望有更好的方法来完成此操作。我正在寻找类似于:
vector<double> doubleVector = convertStringVectortoDoubleVector(myStringVector);
似乎没有类似的东西,那么下一个最好的选择是什么?
编辑: 这是我最终使用的:
std::vector<double> convertStringVectortoDoubleVector(const std::vector<std::string>& stringVector){
std::vector<double> doubleVector(stringVector.size());
std::transform(stringVector.begin(), stringVector.end(), doubleVector.begin(), [](const std::string& val)
{
return stod(val);
});
return doubleVector;}
要获取完整的答案,请查看Zac Howland和Chris Jester-Young的答案。(注:这完全基于Zac的答案)谢谢。
convertVectortoDouble
的函数。 - P0WconvertVectortoDouble
的函数,那么这是否也会使你的代码看起来更加清晰?我非常支持学习新事物,但通常简单的方法是最好的。 - johnstringVector
,而是优先考虑通过const引用进行传递。否则,所有这些关于性能的讨论都将被浪费掉。(但你确实必须按值返回doubleVector
,以确保返回类型正确。) - C. K. Young