Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
 Аватар для Bring
133 / 53 / 43
Регистрация: 09.05.2015
Сообщений: 565

Sort - vector Страуструп

04.09.2017, 19:41. Показов 2692. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Начал читать книгу Страуструпа, сделал упражнение как написано в книге, но VS программу компилирует, но ничего не делает. Тоесть я вписываю что то в прогу, по идее она должна сортировать, но она как будто игнорит код.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<cmath> 
using namespace std;
inline void keep_window_open() { char ch; cin >> ch; }
 
int main() {
    vector<string> words;
    for (string temp; cin >> temp;)
 
        words.push_back(temp);
    cout << "Number of words: " << words.size() << '\n';
 
    sort(words.begin(), words.end());
    for (int i = 0; i < words.size(); ++i)
        if (i == 0 || words[i - 1] != words[i])
            cout << words[i] << '\n';
 
 
    keep_window_open();
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.09.2017, 19:41
Ответы с готовыми решениями:

vector<vector<double>> + std::sort()
Позвольте узнать... Возможно ли через vector&lt;vector&lt;double&gt;&gt; и функцию std::sort() отсортировать строки массива в лексикографическом...

Не работает функция sort (vector, vector)
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;vector&gt; #include &lt;string&gt; #include &lt;algorithm&gt; using namespace std; class...

столкнулся с некоторыми сложностями, хотелось бы разъяснений(Страуструп - класс vector)
Ну вот, столкнулся с некоторыми сложностями, хотелось бы разъяснений, ибо не поймешь одно и пойдет по цепо4ке. Так вот, Страуструп...

23
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
04.09.2017, 20:23
Цитата Сообщение от Bring Посмотреть сообщение
но она как будто игнорит код.
Как это выглядит?
0
 Аватар для Bring
133 / 53 / 43
Регистрация: 09.05.2015
Сообщений: 565
04.09.2017, 20:29  [ТС]
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
04.09.2017, 20:35
Лучший ответ Сообщение было отмечено pav1uxa как решение

Решение

Как понять: это ввод или вывод?

Добавлено через 4 минуты
Если я правильно понял, то ты не знаешь как из цикла ввода выйти. Введи с новой строки: Ctrl + Z.
0
 Аватар для Bring
133 / 53 / 43
Регистрация: 09.05.2015
Сообщений: 565
04.09.2017, 20:36  [ТС]
открывается окно, и я туда пишу, судя по коду и cin >> temp, она в окне должна заносить слова в вектор, разве нет?
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
04.09.2017, 20:43
Цитата Сообщение от Bring Посмотреть сообщение
она в окне должна заносить слова в вектор, разве нет?
Она и заносит. Как выйти из цикла ввода - я написал.
0
 Аватар для Bring
133 / 53 / 43
Регистрация: 09.05.2015
Сообщений: 565
04.09.2017, 20:45  [ТС]
А почему он не показывает строки когда я ввожу что либо?
C++
1
cout << "Number of words: " << words.size() << '\n';
C++
1
cout << words[i] << '\n';
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
04.09.2017, 20:49
Цитата Сообщение от Bring Посмотреть сообщение
А почему он не показывает строки когда я ввожу что либо?
В каком месте кода? В 19 строке? Если не выводит, значит условие не выполняется.
0
Каждому свое
 Аватар для Bretbas
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
04.09.2017, 20:49
Bring, у тебя цикл for (string temp; cin >> temp;) бесконечный.
Ты должен написать условие для выхода, например вот так: for (string temp; temp != "qwe";cin >> temp)
Тоесть ты будешь вводить слова до тех пор, пока не введешь qwe
и только потом пойдет сортировка
0
 Аватар для Bring
133 / 53 / 43
Регистрация: 09.05.2015
Сообщений: 565
04.09.2017, 20:50  [ТС]
ну я так понял он и 14 строку кода и 19 должен выводить сразу как я напишу слово, вот и мой вопрос был изначально, почему не выводит?
0
Каждому свое
 Аватар для Bretbas
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
04.09.2017, 20:50
Bring,
Цитата Сообщение от Bring Посмотреть сообщение
ну я так понял он и 14 строку кода и 19 должен выводить сразу как я напишу слово, вот и мой вопрос был изначально, почему не выводит?
Я написал выше.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
04.09.2017, 20:54
Цитата Сообщение от Bring Посмотреть сообщение
ну я так понял он и 14 строку кода и 19 должен выводить сразу как я напишу слово,
Неправильно понял.
Миниатюры
Sort - vector Страуструп  
0
 Аватар для Bring
133 / 53 / 43
Регистрация: 09.05.2015
Сообщений: 565
04.09.2017, 20:54  [ТС]
Окей, поменял, но программа выполняется так же, тоесть ничего не делает. Я ввожу слова и ничего не происходит.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
04.09.2017, 20:57
Цитата Сообщение от Bring Посмотреть сообщение
Окей, поменял,
Что поменял? Не нужно ничего менять.
Читай 4-й пост, смотри скрин.
0
 Аватар для Bring
133 / 53 / 43
Регистрация: 09.05.2015
Сообщений: 565
04.09.2017, 20:57  [ТС]
Сделал так же, ввел несколько слов, нажал Ctrl + Z, но он ничего не показал.
0
Каждому свое
 Аватар для Bretbas
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
04.09.2017, 20:57
Bring, Не может такого быть. Вот мой тест, все проходит:
C++
1
2
3
4
5
6
7
8
9
10
11
bvbv
sdsd
hjg
asas
qwe
Number of words: 5
 
asas
bvbv
hjg
sdsd
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
04.09.2017, 20:59
Bring, по порядку.

1. Код из первого поста правильный, в нем ничего не нужно менять.
2. Запустите программу. Введите несколько слов, после этого нажмите комбинацию клавиш Ctrl+Z (как Вам указали выше) и Enter. Программа выводит введенные слова в отсортированном порядке.
3. Если бы Вы читали книгу более внимательно, то все бы у Вас получилось (у Страуструпа написано про Ctrl+Z).

Не по теме:

*4. С русскими словами скорее всего не сработает...

0
 Аватар для Bring
133 / 53 / 43
Регистрация: 09.05.2015
Сообщений: 565
04.09.2017, 21:07  [ТС]
По твоему методу сработало. Спасибо.

Добавлено через 1 минуту
Все верно, я не дочитал главу, спешу... Спасибо.

Добавлено через 5 минут
Слушай, а объясни пожалуйста как этот код:
C++
1
if (i == 0 || words[i - 1] != words[i])
проверяет есть ли уже слово, конкретно я не понимаю к чему тут "words[i - 1]".
0
Каждому свое
 Аватар для Bretbas
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
04.09.2017, 21:10
Bring, if (i == 0 || words[i - 1] != words[i])

Это условие не допускает двух одинаковых подряд слов. words[i - 1] != words[i] здесь проверяется предыдущее с текущим
0
 Аватар для Bring
133 / 53 / 43
Регистрация: 09.05.2015
Сообщений: 565
04.09.2017, 21:29  [ТС]
а к чему тут i-1?))))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.09.2017, 21:29
Помогаю со студенческими работами здесь

Vector sort не сортирует
Добрый день, подскажите, пожалуйста. Мне необходимо отсортировать вектор в котором хранится мой класс. Вроде все сделала,...

stl sort vector не сортирует ?!
class Playlist { private: std::vector&lt;Song&gt; s_container; public: Playlist() { s_container=std::vector&lt;Song&gt;(); } ...

Sort vector, сортировка по двум полям структуры
Поскажите как отсортировать если: struct DATA{ string fir; string sec; double sm; }; vector &lt;DATA&gt; vec; ...

Использование std::sort для собственно vector'a
Всем доброго времени суток, необходимо создать рабочий контейнер вектора с итератором, сказано - сделано, хочу проверить его с сортировкой,...

Ошибка 500 в менеджере модулей Joomla - Out of sort memory, consider increasing server sort buffer size
Привет! Подскажите что делать , когда такая проблема ?


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru