我如何将整数行转换为数组(或向量);

时间:2019-03-08 20:27:02

标签: c++ arrays vector integer

我有一个long double x,y, entry输出这些数字;

x的

输出: 5 1个 1个 2 2 3 3 4 5 5 5

上面x中的数字是垂直表示的

这是这里的代码;

stringstream sa(line);
long double x,y,entry;
vector<float> xd, yd;
sa >> x >> y >> entry;
cout << x;
cout << " " << y;
cout << " " << /*"Entries: " <<*/setprecision(16)<< entry << endl;

1 个答案:

答案 0 :(得分:0)

根据您提供的代码段,您可以将stringstream直接输出到vector中。

copy(istream_iterator<float>(sa), istream_iterator<float>(), back_inserter(xd));

copy来自<algorithm>标头,istream_iterator来自<iterator>标头。

或者,您可以使用以下方法构造xd向量:

初始化器列表

xd = {x}; // or xd( {x} )

这可以用于标量和数组输入。如果从vector<float>构造long double,则将发生隐式变窄转换。您应该从编译器得到有关此的警告。

使用 push_back insert 成员功能

如果x是标量:

xd.push_back(x);

如果x是一个数组:

xd.insert(xd.begin(), x, x + x_size);