Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 16.11.2019
Сообщений: 48

Необходимо отсортировать список структур

08.05.2023, 22:06. Показов 1475. Ответов 8

Студворк — интернет-сервис помощи студентам
Дана структура и список:
C++
1
2
3
4
5
6
struct elem{
        string name;
        int rand1 = 1;
        int rand2;
    };
list<elem> listOfElems;
Необходимо, используя функции из библиотеки algorithms, отсортировать список по возрастанию названия.
Моя попытка:
C++
1
    sort(listOfElems.begin(), listOfElems.end(), [](const elem& a, const elem& b) { return a.name < b.name; });
Пишет: "No matching function for call to 'sort'".
Что не так? Правильно ли я поставил первые два параметра сорт? Или надо так:
C++
1
sort(list<elem>::iterator it = listOfElems.begin(), <...>)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.05.2023, 22:06
Ответы с готовыми решениями:

Отсортировать список структур
Задача. В таблице задано информацию о название города, количество институтов, численность населения, численность студентов. Упорядочить...

Отсортировать список структур по алфавиту
Помогите, пожалуйста отсортировать список структуры по алфавиту. Необходимо учесть, повторяющиеся фамилии. Буду очень признателен за...

Как отсортировать двусвязный список из структур
Мне необходимо отсортировать по стажу структуры в двусвязном списке.Важные строки 13-29 (структуры) мои попытки сделать сортировку...

8
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
08.05.2023, 23:38
У списка своя функция sort().
C++
1
listOfElems.sort([](const elem& a, const elem& b) { return a.name < b.name; });
0
0 / 0 / 0
Регистрация: 16.11.2019
Сообщений: 48
09.05.2023, 00:36  [ТС]
Я уже написал: "используя функции из библиотеки algorithms".
А насколько мне известно, sort, что Вы привели в пример, не относится к algorithm
0
599 / 421 / 137
Регистрация: 02.10.2008
Сообщений: 1,798
Записей в блоге: 1
09.05.2023, 08:03
А #include <algorithm> присутствует в теле программы?

Добавлено через 2 минуты
Цитата Сообщение от denn02 Посмотреть сообщение
А насколько мне известно, sort, что Вы привели в пример, не относится к algorithm
Что??? https://learn.microsoft.com/ru... c-170#sort
0
19495 / 10100 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
09.05.2023, 13:06
Цитата Сообщение от denn02 Посмотреть сообщение
Я уже написал: "используя функции из библиотеки algorithms".
Цитата Сообщение от denn02 Посмотреть сообщение
Что не так?
sort, которая отдельная sort из <algorithm>, работает только с random access итераторами. Итераторы связного списка не являются random access (по определению). Именно по этой причине у list своя, отдельная sort; алгоритм сортировки без возможности произвольного доступа к элементам - другой.
0
0 / 0 / 0
Регистрация: 16.11.2019
Сообщений: 48
09.05.2023, 13:45  [ТС]
Цитата Сообщение от drfaust Посмотреть сообщение
Declared in: stl_list.h namespace std::__cxx11 public: template<_StrictWeakOrdering> void list::sort(_StrictWeakOrdering).
Очень сомневаюсь, что это <algorithm>.

Добавлено через 2 минуты
Цитата Сообщение от DrOffset Посмотреть сообщение
sort, которая отдельная sort из <algorithm>, работает только с random access итераторами. Итераторы связного списка не являются random access (по определению). Именно по этой причине у list своя, отдельная sort; алгоритм сортировки без возможности произвольного доступа к элементам - другой.
А можно ли использовать какую либо функцию из <algorithm>?
0
19495 / 10100 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
09.05.2023, 14:29
Лучший ответ Сообщение было отмечено denn02 как решение

Решение

Цитата Сообщение от denn02 Посмотреть сообщение
А можно ли использовать какую либо функцию из <algorithm>?
Для сортировки? Нет.
Вы точно правильно поняли задание?

Ну, в крайнем случае вы можете написать сортировку для списка с использованием средств из <algorithm>.
Вот, например, тривиальная сортировка выбором (подходит для списка):
C++
1
2
3
4
5
6
7
template <typename ForwardIt, typename Cmp>
void selection_sort(ForwardIt begin, ForwardIt end, Cmp cmp)
{
    for(ForwardIt i = begin; i != end; ++i) {
        std::iter_swap(i, std::min_element(i, end, cmp));
    }
}
1
0 / 0 / 0
Регистрация: 16.11.2019
Сообщений: 48
09.05.2023, 14:54  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
Вы точно правильно поняли задание?
Надо сделать список из структур и отсортировать его. И там после есть некоторые задания. По итогу я сделал vector<elem> и использовал обычный сорт.
0
599 / 421 / 137
Регистрация: 02.10.2008
Сообщений: 1,798
Записей в блоге: 1
09.05.2023, 16:06
Цитата Сообщение от denn02 Посмотреть сообщение
Declared in: stl_list.h namespace std::__cxx11 public: template<_StrictWeakOrdering> void list::sort(_StrictWeakOrdering).
Очень сомневаюсь, что это <algorithm>.
Возможно я ошибся - стараюсь не вылазить за пределы STL
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.05.2023, 16:06
Помогаю со студенческими работами здесь

Необходимо отсортировать однонаправленный список.
Необходимо создать однонаправленный список и реализовать в нём все действия...Получилось сделать всё кроме сортировки...необходимо...

Дан список сотрудников массив указателей на символы необходимо отсортировать его по алфавиту (по возрастанию)
Здравствуйте Подскажите пожалуйста по задачке (Дан список сотрудников массив указателей на символы необходимо отсортировать его по...

Блочная сортировка структур (Отсортировать массив структур по фамилии)
Подскажите алгоритм блочной сортировки структур на языке С++. Мне нужно отсортировать массив структур по фамилии.

Создать рекурсивный список динамических структур(или структур указателей)
Значит идея какая есть код который получает список структур на 1 2 3 4 байт. #include &quot;stdafx.h&quot; #include &lt;conio.h&gt; ...

Заменить массив структур на односвязный список, и на двусвязный список
Взять текст задания и заменить массив структур на односвязный список, и на двусвязный список using namespace std; class person { ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru