我目前手头有一个类,User :: User(字符串id,字符串评级)。 我正在尝试当前存储字符串" 1 5 5 3 0 -5 0 5" (这是评级的参数,已经处理了id)到一个不能改变的向量中,称为向量(int)< - 整数等级作为字符串中看到的8个整数的向量。迭代此字符串并存储单个值(包括底片)的最佳方法是什么?
答案 0 :(得分:2)
#include <sstream>
#include <vector>
#include <iostream>
int main()
{
std::istringstream is("1 5 5 3 0 -5 0 5");
std::vector<int> v;
int n;
while (is >> n)
v.push_back(n);
for (size_t i = 0; i < v.size(); i++)
std::cout << v[i] << '\n';
return 0;
}
答案 1 :(得分:2)
此问题是stream iterators
的规范用例#include <algorithm>
#include <iostream>
#include <iterator>
#include <sstream>
#include <vector>
int main()
{
std::istringstream iss{ "1 5 5 3 0 -5 -5" };
std::vector< int > v;
std::copy( std::istream_iterator< int >{ iss },
std::istream_iterator< int >{},
std::back_inserter( v ) );
std::copy( std::begin( v ),
std::end( v ),
std::ostream_iterator< int >( std::cout, " " ) );
}