Я только что создал специальную функцию поиска строк на карте. Я разработал какой-то алгоритм линейного поиска (о котором узнал позже) и не был удовлетворен скоростью работы функции. Поэтому я поискал более быструю функцию и нашел собственную функцию карты: map :: find .
Это было невероятно быстрее, чем линейный алгоритм, который я использовал.
В другом примере функция STL find также была намного быстрее, чем другая линейная функция I. я использую.
Но как это возможно? Если вы используете алгоритм двоичного поиска, вам нужно сначала отсортировать карту, что займет (гипотетически) больше времени, чем больше ваша карта.
Также как узнать алгоритмы, лежащие в основе этих основных функций? Есть ли список или какая-то база данных, чтобы узнать об этом?
Спасибо за все ваши ответы! Я проголосовал за лучшие ответы и принял ответ Макса Либберта, потому что он был наиболее подробным.
Пол :)