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

Отсортировать контейнер map по значению элементов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ сортировка с помошью итераторов http://www.cyberforum.ru/cpp-beginners/thread272187.html
Дана последовательность действительных чисел. Необходимо используя алгоритм сортировки вставками сформировать новую последовательность, упорядоченную: а) по возрастанию; б) по убыванию. Указания. 1. Для представления последовательности необходимо использовать библиотечный шаблон vector. 2. Для доступа к элементам последовательности необходимо использовать итераторы. 3. Ввод, вывод и...
C++ Приложения под Windows Подскажите что нужно ещё учить помимо C++, чтоб писать приложения под винд. ? Дело в том, что основы С++ я уже освоил и не знаю за что теперь браться, чтоб программировать под винд. http://www.cyberforum.ru/cpp-beginners/thread272173.html
C++ сортировка строк методом выбора
ввести с клавиатуры значения элементов символьного двумерного массива. ОТСОРТИРОВАТЬ ПО возрастанию (МЕТОДОМ ВЫБОРА) элементы тех строк, которые содержат символ "/". Добавлено через 1 минуту #include <stdio.h> #include <conio.h> #include <stdlib.h> void main() { char A;
ИНТЕРЕСНОЕ)) C++
Cантехнік Петро був найнятий, щоб прокласти трубу водопостачання між двома точками міста. Мапу міста можна представити у вигляді прямокутника розміром R × S, що складається з квадратних клітинок. У деяких клітинках трубу розміщувати не можна. Петро повинен з'єднати за допомогою труби місце, розташоване безпосередньо над верхньою лівою клітинкою, і місце, розташоване прямо під нижньою правою...
C++ Cортировка двусвязного списка http://www.cyberforum.ru/cpp-beginners/thread272167.html
Ну, в общем задание в названии. Нужно отсортировать двусвязный список, методом пузырька. Сортировку-то я эту знаю. Но вот проблема, я не могу разобраться, как в двусвязном списке перейти к следующему элементу, и как сделать указатель на текущий. Да и вообще с двусвязными как-то не ладится) struct Element { Element* Prev; Element*...
C++ Заполнить матрицы по правилу Доброго времени суток. Вот встал перед проблемой при работе с матрицей. Необходимо заполнить матрицу 5х5 следующим образом 1 1 1 1 1__или__x 1 1 1 x 0 1 1 1 0_______0 x 1 x 0 0 0 1 0 0_______0 0 x 0 0 0 1 1 1 0_______0 x 1 x 0 1 1 1 1 1_______0 0 0 0 0 Исходников не прошу, хочу просто услышать мысли по этому поводу, алгоритмы реализации, мб примеры, а то щя по книжке С учу а там... подробнее

Показать сообщение отдельно
Union
17 / 17 / 2
Регистрация: 16.08.2010
Сообщений: 252
09.04.2011, 23:23  [ТС]     Отсортировать контейнер map по значению элементов
Опишу подробнее что мне нужно от контейнера.
Я загружаю текст, и далее считываю его по словам и добавляю эти слова в контейнер со значением 0. Если слово уже есть, то инкрементирую значение, т.е. увеличиваю счетчик на 1.
В итоге после всего я получу контейнер, где ключ уникален - это слово и значение - количество раз, которое это слово встречается в тексте.
После мне нужно сохранить это в файл или базу, но в осортированном виде, чтобы вверху было наиболее частовстречаемое слово, а внизу наиболее редковстречаемое, ну и сбоку выводить сколько именно раз слово встретилось в тексте. Вот в общем-то и всё, никаких других операций я над контейнером проводить не собираюсь.

Контейнер выбираю чисто из соображений функций.
Вставлять буду очень часто, всего около 600000 слов, а выводить всего 1 раз, после того, как приложение отработает.
Насчёт вектора думал, но опять же я не так хорошо знаком с stl, чтобы разобраться как отсортировать его по значению,.. да и заполнять,... и как-то не рекомендуют его использовать для хранения пары ключ <-> значение... в общем у меня нет представления как это организовать

Добавлено через 41 минуту
Напишите пожалуйста реализации операции вставки, поиска по ключу, инкремент ключа и сортировку по ключу у вектора:
std::vector<pair<int, char[39]> > wave;
я вообще не представляю себе как это сделать...
может быть даже вместо pair стоит использовать структуру?

Добавлено через 1 час 6 минут
Вот попробовал сделать вставку:
C++
1
2
      std::vector<std::pair<int, char[39]> > wave;
      wave.insert(std::make_pair<int, char[39]>(10, "wwer"));
не работает, что я сделал неправильно?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru