“使用C ++”
我有一个UnicodeString,它包含一些逗号分隔的整数值,例如: UnicodeString usCSVs =“3,4,5,6”;
我需要将这些值存储在std :: vector< INT取代。 什么是实现上述功能的最佳方式。
此致 JS
答案 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。完成