Вариант 1)
Если вы вынуждены использовать std :: vector, но как только вектор заполнен, он остается неизменным, тогда вы можете отсортировать вектор и использовать бинарный поиск. Единственной стоимостью будет сортировка, и никаких дополнительных затрат не будет. Время поиска логарифмическое O (logN).
Вариант 2)
Если у вас есть свобода и вы можете выбрать другую структуру данных, рассмотрите возможность использования карты (также логарифмической) или unordered_map (ожидаемое O (1), худшее O (n)).
Я только что заметил, что вы сказали, что хотите сопоставить каждый лейбл с тем, который искали. Итак, я заключаю, что вы можете иметь дубликаты ярлыков. Затем для пункта 2 используйте соответствующие контейнеры multi_map, в то время как для пункта 1 дела идут немного грязнее.