2011-08-29 59 views
1

我有一個包含值「1 2 3」我可以傳遞一個字符串istream_iterator <int>

我可以使用istream_iterator提取值1,2和3

+0

我甚至不知道這是什麼 應該做的。你說你「有一個包含1 2 3的字符串」,但你的代碼是完全不同的。 –

+0

是的。這是完全錯誤的。你能告訴我該怎麼做嗎? – user855

+0

我不知道爲什麼這是downvoted。 –

回答

2

您可以將字符串對象,像這樣:

std::string str = "1 2 3"; 
std::vector<int> v; 
std::istringstream iss(str); 
std::istream_iterator<int> begin(iss), end; 
std::copy(begin,end,back_inserter(v)); 
+1

甚至如何'std :: vector v(開始,結束);'? –

0

使用std::istringstream

#include<sstream> 
#include<iterator> 

// ... 
std::string s("1 2 3"); 
std::istringstream ss(s); 
std::copy(std::istream_iterator<int>(ss), std::istream_iterator<int>(), 
      std::ostream_iterator<int>(std::cout, "-")); 
+0

'istream_iterator (istringstream(s))'怎麼會不起作用? –

相關問題