|
1 / 1 / 1
Регистрация: 11.04.2015
Сообщений: 35
|
||||||
Подобие графа05.06.2016, 18:53. Показов 1944. Ответов 29
Метки нет (Все метки)
Имеется примерно такой вот класс:
![]() Добавлено через 5 часов 24 минуты UPD: Необязательно себя утруждать и писать код, приму любую помощь. Достаточно просто объяснить, как это возможно реализовать, либо не возможно и свой вариант решения задачи.
0
|
||||||
| 05.06.2016, 18:53 | |
|
Ответы с готовыми решениями:
29
По заданной матрице смежности простого графа построить каркас этого графа с использованием поиска в ширину Обход графа в ширину для определения всех вершин графа, находящихся на фиксированном расстоянии от данной вершины Подобие игры |
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
| 08.06.2016, 18:09 | |
|
vadim_bz, после выхода из функции ptr уничтожит объект, и weak_ptr в векторе будет невалидным.
Добавлено через 1 минуту Что бы использовать weak_ptr, для каждой комнаты нужен shared_ptr, который, к примеру, будет хранится во внешнем контейнере, вроде вектора.
0
|
|
|
1 / 1 / 1
Регистрация: 11.04.2015
Сообщений: 35
|
|
| 08.06.2016, 18:59 [ТС] | |
|
Мда, выходит тогда что-то сложное и не очень красивое, уж проще тогда где то держать вектор с указателями на все элементы, уж лучше такой баласт, чем все эти заморочки с "умными указателями", где в конечном счёте так же придётся держать вектор, но только с shared_ptr.
0
|
|
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
| 08.06.2016, 19:02 | |
|
vadim_bz, в случае shared_ptr и weak_ptr мы точно можем знать, когда объект уничтожен и weak_ptr не валидный. Ну и избежим new/delete.
0
|
|
|
1 / 1 / 1
Регистрация: 11.04.2015
Сообщений: 35
|
|
| 08.06.2016, 19:58 [ТС] | |
|
Toshkarik, я хотел то как, функция строящая граф возвращает обычный указатель на первый элемент графа (созданный первым), затем навигация осуществляется путём перебора в цикле ближайших соседей, по какому-нибудь условию, и если условие выполняется то этот указатель приравнивается новому элементу графа. А теперь получается с shared_ptr такое не провернуть да и весь массив нужно выводить. Либо сделать что бы первый элемент массива был навигационный (то что описал ранее), другими словами - текущее положение в графе, а остальные уже элементы массива - это элементы графа и тогда один этот массив выводить из функции создания графа.
0
|
|
|
200 / 200 / 78
Регистрация: 10.07.2012
Сообщений: 409
|
|
| 08.06.2016, 20:04 | |
|
Я не понимаю что мешает держать и массив и указатель на какой-то элемент.
Массив будет использоваться при создании и уничтожении графа, а указатель - для навигации по нему.
0
|
|
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|||||||||||
| 08.06.2016, 20:23 | |||||||||||
|
Ну, я вижу это примерно так:
1
|
|||||||||||
|
1 / 1 / 1
Регистрация: 11.04.2015
Сообщений: 35
|
|
| 08.06.2016, 20:24 [ТС] | |
|
Vort_, да наверное так и сделаю, а мой вариант с навигационным указателем, как первым элементом массива неадекватен?
0
|
|
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
| 08.06.2016, 20:28 | |
|
Последний цикл неверно записал, там нужно считывать до конца файла, но идею я думаю Вы должны понять.
0
|
|
|
200 / 200 / 78
Регистрация: 10.07.2012
Сообщений: 409
|
||
| 08.06.2016, 20:32 | ||
|
Но я бы разнёс. Сделал бы, к примеру, класс Graph, туда положил массив и указатель на текущий элемент. А также методы по заполнению и очистке массива.
1
|
||
|
1 / 1 / 1
Регистрация: 11.04.2015
Сообщений: 35
|
||
| 08.06.2016, 20:47 [ТС] | ||
|
Думаю вопрос теперь точно исчерпан, всем ещё раз большое спасибо!
0
|
||
| 08.06.2016, 20:47 | |
|
Подобие треугольников
Подобие базы данных
Робот (подобие игры Sokoban) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|