Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 25.07.2018
Сообщений: 33
1

Не могу создать вектор, используя потоковые итераторы напрямую

21.12.2018, 21:55. Показов 1150. Ответов 3

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <string>
using namespace std;
 
int main()
{
    vector<string> text(istream_iterator<string>(cin), istream_iterator<string>());
    sort(text.begin(), text.end());
    unique_copy(text.cbegin(), text.cend(), ostream_iterator<string>(cout, " "));
}
Такая версия отказывается работать адекватно на момент создания вектора, определяя text , как функцию магическим образом, хотя на сайте https://github.com/Mooophy/Cpp... x10_30.cpp используется именно эта версия.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <string>
using namespace std;
 
int main()
{
    auto begin = istream_iterator<string>(cin), end = istream_iterator<string>();
    vector<string> text(begin,end);
    sort(text.begin(), text.end());
    unique_copy(text.cbegin(), text.cend(), ostream_iterator<string>(cout, " "));
}
Это работает исправно. Помогите пожалуйста , никак не могу понять в чем дело, даже копируя исходник из вышеупомянутого сайта программа не работает.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.12.2018, 21:55
Ответы с готовыми решениями:

Потоковые итераторы
Я новичок, прошел тему &quot;STL&quot; по учебнику Лафоре. Пишу в Code::Blocks, поставить другую IDE...

Потоковые и обратные итераторы
В MSDN написано:&quot;Существующие контейнеры стандартной библиотеки шаблонов также задают типы...

Потоковые итераторы - не работает код
Выношу на ваш суд следующий код, взятый мной из учебника Лафоре int main() { ...

Потоковые итераторы, конец потока
В одном учебнике по STL есть такой код: std::vector&lt;std::string&gt; vec; ...

3
1363 / 1000 / 316
Регистрация: 28.07.2012
Сообщений: 2,769
21.12.2018, 23:43 2
Лучший ответ Сообщение было отмечено НемецкийКот как решение

Решение

Цитата Сообщение от НемецкийКот Посмотреть сообщение
Такая версия отказывается работать
Most vexing parse

Используй универсальную инициализацию через фигурные скобки из C++11:
C++
1
vector<string> text{istream_iterator<string>{cin}, istream_iterator<string>{}};
Она придумана как раз для того, чтобы обойти вышеуказанную проблему.

Добавлено через 1 минуту
Цитата Сообщение от НемецкийКот Посмотреть сообщение
даже копируя исходник из вышеупомянутого сайта программа не работает
Очевидно, что этот код никто предварительно не тестировал в реальном компиляторе.
1
2229 / 1732 / 865
Регистрация: 21.12.2010
Сообщений: 3,074
Записей в блоге: 11
22.12.2018, 05:50 3
C++
1
vector<string> text((istream_iterator<string>(cin)), istream_iterator<string>());
0
0 / 0 / 0
Регистрация: 25.07.2018
Сообщений: 33
22.12.2018, 11:08  [ТС] 4
Спасибо большое!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.12.2018, 11:08

Отобразить вектор в обратном порядке не используя реверсивные итераторы
Отобразить вектор в обратном порядке не используя реверсивные итераторы никак не могу в цикле...

Вектор и итераторы
Всем привет. Помогите дописать курсовую. Нодо сделать вывод студентов с вектора + сортировку...

Используя вектор, создать квадратную матрицу
Первая программа: создание матрицы, используя вектор Добрый день! Задали написать программу:...

Создать класс Vector – вектор, используя динамическую память
Создать класс Vector – вектор, используя динамическую память. Определить операторы &quot;+&quot; –...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru