|
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
|
|||||||||||
Сортировка для контейнера с указателями28.08.2012, 12:29. Показов 3771. Ответов 26
Метки нет (Все метки)
Понадобилось сделать контейнер указателей, но встала проблема сортировки и типа контейнера :
Как перегрузить сравнение для указателей, а так же как намекнуть set, что указатели равны, и он не multiset? Не по теме: p.s Нормально ли пренебрегать инкапсуляций, если класс, имеющий контейнер объектов/указателей на объекты другого класса - приватит этот контейнер, а класс, находящийся в этом контейнере - публичный, но при этом нигде больше не используется и не имеет статический методов? Что-то типа :
0
|
|||||||||||
| 28.08.2012, 12:29 | |
|
Ответы с готовыми решениями:
26
Сортировка Шелла для контейнера List библиотеки STL Сортировка с указателями Быстрая сортировка с указателями |
|
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
|
|
| 28.08.2012, 18:53 [ТС] | |
|
Выходит, что сделать класс для "двойной" перегрузки нельзя? Ведь один класс будет 100% определен раньше другого. А засунуть сравнение после обоих классов не поможет.
0
|
|
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
| 28.08.2012, 18:55 | |
|
что такое двойная перегрузка? не путаете ли вы определение с имплементацией?
сперва определения двух классов. потом имплементация методов, в которых собственно идет обращения к мемберам. т.к. определения уже были, то это нормально скомпилируется.
1
|
|
|
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
|
| 28.08.2012, 18:57 | |
|
Перед реализациями функций operator() есть только предварительные объявления классов или же классы уже описаны полностью? Должны быть полностью описаны. Причём для описания самого класса COMPARE достаточно только предварительных определений, но тогда функции всё-равно определять придётся после определений классов ROOM и USER, поскольку в функциях указатели разыменовываются.
Добавлено через 1 минуту Не по теме: Долго, что-то, набирал я :)
1
|
|
| 28.08.2012, 19:01 [ТС] | |
|
Не по теме: DU, oh my god.. А я сейчас вот уже третий час пишу то, что, как оказывается, не будет работать.. Вот теперь я и правда в печали :<
0
|
|
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
| 28.08.2012, 19:03 | |
|
ну скорее всего все будет работать, нужно только правильно код организовать. я так и не понял проблему. вопрос топика касался кастомного оператора < для указателей. потом что-то левое пошло. где проблема - непонятно.
1
|
|
|
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
|
|
| 28.08.2012, 19:13 [ТС] | |
|
DU, попробую объяснить (а заодно надеюсь на совет - стоит ли прямо сейчас переписывать код, ибо то, что я хочу - невозможно).
Есть 4 класса : server, user, room, compare. У server есть два поля : set <USER*, COMPARE> set <ROOM*, COMPARE> У user есть поле : set <ROOM*, COMPARE> У room есть поле : set <USER*, COMPARE> Описывал я так прототипами все 4 класса. Затем подключал хэдер room, user, server, compare (именно в такой последовательности). Вся их реализация в одноименных cpp-файлах. С точки зрения здоровой логики мне не ясно, как room, ссылается (и использует!) на поля user, определенного после него, но объявленного до него. Ну и с остальными такие же непонятки. А насчет find и операторов я спрашивал потому, что хотел в классах user и room хранить set<int> - где это были бы ID, а в сервере уже искать запись по ID
0
|
|
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
||||||
| 28.08.2012, 19:24 | ||||||
|
Вот может такой код прояснит немного ситуацию:
0
|
||||||
| 28.08.2012, 19:24 | |
|
Сортировка кучей с указателями Сортировка контейнера list
Сортировка одномерного массива с указателями
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|