многомерный массив — структура данных C ++ для неориентированного графа неизвестного размера

Я пытаюсь сделать программу, которая исследует неориентированный граф неизвестного размера и строит список смежности по ходу дела. Обычно я бы сделал set<set<String>> (комнаты обозначены строкой), но мне сказали, что это нестабильно в C ++. Какова была бы лучшая структура данных?

1

Решение

Это зависит от того, как вы хотите запросить информацию позже.

Я могу предложить две альтернативы:

using namespace std;
set< pair<string,string> >

или же

using namespace std;
multimap<string,string>

В первом случае setВы можете проверить, подключены ли два узла, но вам нужно знать оба узла (A и B), чтобы выполнить запрос. Во втором случае multimapДля данного узла A вы можете легко получить итератор со всеми соседними узлами.

Вам нужно будет вставить пары дважды или использовать какое-то правило, например, всегда добавлять ребра в лексикографическом порядке.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]