C++ std::map сортировка

351
05 сентября 2017, 10:51

Как сортировать по признаку того что ключ данного элемента является значением другого? т.е надо сортировать по тому что значение первого является ключом второго std::map< sNode, sNode > test; И вообще можно ли так сделать?

Answer 1

То, что вы хотите сделать, в общем случае может быть неразрешимо (например, при цикле - если у вас есть, скажем, пары (1,2) (2,3) (3,1) - какая должна быть первой?) или неоднозначно (например, (1,2) (2,3) (2,4)). Неясно, как обрабатывать вариант несвязанных пар - типа (1,2) (3,4) (5,6).

Но в принципе - рассматривая значения пар как вершины некоторого графа, а сами пары - как его ребра - вы получаете задачу топологической сортировки, стандартной реализации в стандартной библиотеке C++ которой не имеется.

Но она достаточно легко реализуется самостоятельно.

READ ALSO
Как точно вывести время компиляции?

Как точно вывести время компиляции?

Чтобы вплоть до секундГде-то писали, что это все решается с помощью библиотеки <ctime> и временным типом time_t, но не работает

438
Прокрутка к якорю, но немного выше

Прокрутка к якорю, но немного выше

ПриветствуюПрокрутка к якорю на jQuery - очень популярная тема и у меня как раз вопрос по этому

228