Это не вопрос размера, а использования.
Сортированный вектор хорошо работает, когда используется схема чтения данных, а затем выполняется поиск в данных.
Карта хорошо работает, когда шаблон использования включает в себя более или менее произвольную смесь изменения данных (добавления или удаления элементов) и выполнения запросов к данным.
Причина этого довольно проста: у карты больше накладных расходов на отдельный поиск (благодаря использованию связанных узлов вместо монолитного блока хранения). Однако вставка или удаление, которые поддерживают порядок, имеют сложность только O (lg N). Вставка или удаление, которые поддерживают порядок в векторе, имеют сложность O (N).
Есть, конечно, различные гибридные структуры, которые также могут быть полезны для рассмотрения. Например, даже когда данные обновляются динамически, вы часто начинаете с большого количества данных и вносите в него сравнительно небольшое количество изменений за раз. В этом случае вы можете загрузить свои данные в память в отсортированный вектор и сохранить (небольшое количество) добавленных объектов в отдельном векторе. Так как этот второй вектор обычно довольно мал, вы просто не будете его сортировать. Когда / если он становится слишком большим, вы сортируете его и объединяете с основным набором данных.
Edit2: (в ответ на редактирование в вопросе). Если вы говорите о 5 предметах или меньше, вам лучше всего игнорировать все из вышеперечисленного. Просто оставьте данные не отсортированными и выполните линейный поиск. Для такой небольшой коллекции практически нет разницы между линейным поиском и бинарным поиском. Для линейного поиска вы ожидаете отсканировать в среднем половину элементов, что дает ~ 2,5 сравнения. Для бинарного поиска вы говорите о log 2 N, который (если у меня математика работает в это время по утрам) работает до ~ 2.3 - слишком маленькая разница, чтобы о ней заботиться или замечать (в Фактически, бинарный поиск имеет достаточные накладные расходы, что может очень легко закончиться медленнее).