如何将整数存储到c ++中的std :: vector <int>?</int>

时间:2010-12-22 08:09:56

标签: c++

“使用C ++”

我有一个UnicodeString,它包含一些逗号分隔的整数值,例如: UnicodeString usCSVs =“3,4,5,6”;

我需要将这些值存储在std :: vector&lt; INT取代。 什么是实现上述功能的最佳方式。

此致 JS

2 个答案:

答案 0 :(得分: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 ) );

答案 1 :(得分:1)

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