Могу ли я передать строку в istream_iterator <int> - PullRequest
1 голос
/ 29 августа 2011

У меня есть строковый объект, который содержит значение "1 2 3"

Можно ли использовать istream_iterator для извлечения значений 1, 2 и 3

Ответы [ 2 ]

2 голосов
/ 29 августа 2011

Вы можете, вот так:

std::string str = "1 2 3";
std::vector<int> v;
std::istringstream iss(str);
std::istream_iterator<int> begin(iss), end;
std::copy(begin,end,back_inserter(v));
0 голосов
/ 29 августа 2011

Используйте std::istringstream:

#include<sstream>
#include<iterator>

// ...
std::string s("1 2 3");
std::istringstream ss(s);
std::copy(std::istream_iterator<int>(ss), std::istream_iterator<int>(),
          std::ostream_iterator<int>(std::cout, "-"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...