Форум программистов, компьютерный форум CyberForum.ru

STL, vector. iterator. как работает? - C++

Восстановить пароль Регистрация
 
stal_in
1 / 1 / 0
Регистрация: 22.03.2011
Сообщений: 52
30.12.2013, 10:08     STL, vector. iterator. как работает? #1
C++
1
2
3
4
5
6
7
    void invertArrange() //метод инвертирования порядка слов
            {
                            
  istringstream ist(operLine); //Превращаем строку в поток
  vector<string> v((istream_iterator<string>(ist)), istream_iterator<string>());  //видимо помещаем поток в вектор?
  copy(v.rbegin(), v.rend(), ostream_iterator<string>(cout, " ")); //копируем  в поток и выводим
}

Здравствуйте, пытаюсь разобраться с итераторами и векторами, можно на примере объяснить что и как тут делается?

Частично я понял к примеру, что здесь:
C++
1
copy(v.rbegin(), v.rend(), ostream_iterator<string>(cout, " "));
мы копируем, что-то в поток, по всей видимости слова(как именно, тоже не въехал), и выводим их, а за ними пробел.

Но как мы отделяем слова, что делает istream_iterator<string>(ist) и как работает vector, я не разобрался, помогите пожалуйста и не гоните в книжки, слишком заумно написано.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2013, 10:08     STL, vector. iterator. как работает?
Посмотрите здесь:

C++ vector<T> template vector<T>::iterator
C++ STL List Iterator
C++ STL vector iterator
vector<pointer>::iterator C++
vector iterator not decrementable C++
C++ copy, iterator, vector
C++ Stl vector как массив
Vector iterator not incrementable C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
30.12.2013, 10:22     STL, vector. iterator. как работает? #2
stal_in, Зачем тогда использовать если написано слишком заумно? Вектор - инкапсуляция работы с динамическим массивом. istringstream строковый поток. istream_iterator конструируется от потока, здесь используется конструктор вектора с двумя параметрами (range итераторов), первый конструируется от потока и при использовании оператора ++ (используется внутри конструктора вектора) считывается следующее значение, второй же представляет собой end итератор. После чего используя оператор *, значение извлекается из итератора и помещается внутрь вектора. istringstream при использовании вывода в строку считывает до пробела. В итоге в векторе оказываются слова, на которые разбито предложение, при удалении всех пробелов. После чего, мы копируем их в поток в обратном порядке, с помощью std::copy и ostream_iterator, в котором мы указываем в какой поток мы пишем и символ разделитель между значениями.
Yandex
Объявления
30.12.2013, 10:22     STL, vector. iterator. как работает?
Ответ Создать тему
Опции темы

Текущее время: 22:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru