<分区>
我有一个字符串流中的值,用空格分隔,我想将这些值单独提取出来并将它们放入一个 vector 中。
<分区>
我有一个字符串流中的值,用空格分隔,我想将这些值单独提取出来并将它们放入一个 vector 中。
最佳答案
std::string s( "1 2 3 4 5 6 7 8 9 10" );
std::istringstream is( s );
std::vector<int> v( ( std::istream_iterator<int>( is ) ), std::istream_iterator<int>() );
举个例子
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
#include <iterator>
int main()
{
std::string s( "1 2 3 4 5 6 7 8 9 10" );
std::istringstream is( s );
std::vector<int> v( ( std::istream_iterator<int>( is ) ),
std::istream_iterator<int>() );
for ( int x : v ) std::cout << x << ' ';
std::cout << std::endl;
return 0;
}
输出是
1 2 3 4 5 6 7 8 9 10
如果已经定义了 vector 那么你可以写
v.assign( ( std::istream_iterator<int>( is ) ),
std::istream_iterator<int>() );
或者您可以使用一些带有输入迭代器的标准算法,使用 std:;istream_iterator 作为输入迭代器来从流中选择一些单独的值。
关于C++ 如何从字符串流中取出值并将它们放入 vector 中,以便我可以单独访问它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25796080/