将矢量转换为矢量 C++错误

问题描述:

我想使用stod将矢量字符串转换为矢量double。将矢量<string>转换为矢量<double> C++错误

到目前为止,我有:

vector<string> i = {"2.2", "2313.1"}; 
vector<double> rebuild; 

for (int i=0; i<=v.size(); i++) { 
     rebuild.push_back(stod(v[i])); ///converts vector<string> to vector<double> 
    } 

,但我得到的错误 “与类型为std未捕获的异常:: invalid_argument终止:STOD:无转换”

我在做什么错?

你的循环读取超出v向量的界限:

for (int i=0; i<=v.size(); i++)

它应该是:

for (int i=0; i < v.size(); i++)

+0

:/我怎么能错过呢?谢谢。 –

+0

或者如果你使用C++ 11,另一个选项是for(auto d:v)' – sbooth