Closed. This question needs to be more focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
5年前关闭。
我在字符串流中有值,并用空格分隔,我想将这些值单独取出并放入向量中。
这是一个例子
输出是
如果已经定义了向量,则可以编写
或者,您也可以将某些标准算法与输入迭代器结合使用,并使用std:; istream_iterator作为输入迭代器从流中选择一些单独的值。
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
5年前关闭。
我在字符串流中有值,并用空格分隔,我想将这些值单独取出并放入向量中。
最佳答案
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
如果已经定义了向量,则可以编写
v.assign( ( std::istream_iterator<int>( is ) ),
std::istream_iterator<int>() );
或者,您也可以将某些标准算法与输入迭代器结合使用,并使用std:; istream_iterator作为输入迭代器从流中选择一些单独的值。
10-04 23:32