如何存储int入std :: vector 在C++中?
问题描述:
如何存储int入std :: vector <int>在C++中?
“在C++一起使用” 我有一个包含e.g一些逗号分隔整数值的UnicodeString: 的UnicodeString usCSVs = “3,4,5,6”;
我需要将这些值存储在的std ::矢量< INT>。 实现上述功能的最佳方式是什么?
问候, JS
答
解析字符串,首先。你可以使用std :: string :: find来遍历它,它返回一个位置。你应该找到分隔符 - ','。然后,获取子字符串,在两个逗号之间关闭并使用std :: stringstream。完成
答
您可以使用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
听起来像是我的功课,我... – 2010-12-22 08:34:19