Недавно наткнулся на видео
C++Now 2018 You Can Do Better than std unordered_map. Хотя его целью было создание более быстрой версии стандартного unordered_map, но меня заинтересовали его графики приведенные в начале. В них автор сравнивание различные контейнеры при различном числе элементов.

И исходя из них я могу сделать примерный вывод лучше поиск по
целочисленному ключу:
1) Линейный поиск в vector (до 20 элементов)
2) Бинарный поиск в map/flat_map ( с 20 до 300 элементов)
3) Поиск использую hash функцию в unordered_map (с 300 элементов)
Могу предположить что если тип ключа более сложный то unordered_map начнет доминировать раньше. Сейчас я использую unordered_map, но для контейнеров которые будут изменятся редко, небольшого размера и использующие простой ключ - size_t хотелось бы оптимизировать скорость и память.
Насколько эти графики выглядят правдимыми? Просто после этого я решил протестировать контейнеры для небольших размеров - vector + линеный поиск и unordered_map для 10, 25 и 50 элементов. И у меня получается unordered_map во всех случаех лучше. Думаю может я что-то не правильно протестировал?
Release
size vector unordered_map
10 10ns 6ns
25 13ns 6ns
50 19ns 6ns
Что по вашему опыту лучше для небольших контейнеров и простым типом ключа?