На основе предоставленного вами фрагмента кода вы можете вывести ваш stringstream
непосредственно в vector
.
copy(istream_iterator<float>(sa), istream_iterator<float>(), back_inserter(xd));
copy
из заголовка <algorithm>
и istream_iterator
из заголовка <iterator>
.
В качестве альтернативы, вы можете создать свой xd
вектор, используя:
Initializer-листы
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);