2010-12-22 80 views
2

如何存储int入std :: vector <int>在C++中?

“在C++一起使用” 我有一个包含e.g一些逗号分隔整数值的UnicodeString: 的UnicodeString usCSVs = “3,4,5,6”;

我需要将这些值存储在的std ::矢量< INT>。 实现上述功能的最佳方式是什么?

问候, JS

+0

听起来像是我的功课,我... – 2010-12-22 08:34:19

回答

1

解析字符串,首先。你可以使用std :: string :: find来遍历它,它返回一个位置。你应该找到分隔符 - ','。然后,获取子字符串,在两个逗号之间关闭并使用std :: stringstream。完成

4

您可以使用std::istream_iterator解析字符串。在此之前,您需要将所有分隔符替换为空格。

std::vector<int> myarr; 
std::string int_str = "3,4,5,6"; 
std::replace(int_str.begin(), int_str.end(), ',', ' '); 
std::stringstream in(int_str); 
std::copy(std::istream_iterator<int>(in), std::istream_iterator<int>(), std::back_inserter(myarr)); 

对于Unicode版本,它看起来像:

std::wstring int_str = L"3,4,5,6"; 
std::replace(int_str.begin(), int_str.end(), L',', L' '); 
std::wstringstream in(int_str); 
std::copy(std::istream_iterator<int, wchar_t>(in), std::istream_iterator<int, wchar_t>(), std::back_inserter(myarr)); 
+0

niiice,+1,同名的xD – 2010-12-22 08:21:31

相关问题