我有一个long double x,y, entry
输出这些数字;
输出: 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;
答案 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);