2015-08-08 79 views
-2

我想使用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:無轉換」

我在做什麼錯?

回答

6

你的循環讀取超出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

相關問題