Можно только предположить, каково ваше истинное намерение, поэтому я предполагаю, что у вас уже есть класс, который содержит и ключ, и значение. В этом случае std :: set с пользовательским сравнением может быть лучшим выбором, чем std :: map.
Затем необходимо предоставить сравнение, которое будет сравнивать только ключевую часть вашего класса, а ключевая часть должна быть константной (не изменяющейся во времени), пока объект находится в наборе.
Как упомянуто в комментарии, элементы набора доступны только как conts, поэтому, если вы хотите изменить значение такого элемента, вам нужно const_cast доступ на запись или объявить изменяемый член.
В другом ответе iain сделал еще одно очень хорошее предложение. Если вы редко вставляете в контейнер и в основном обращаетесь к контейнеру в поисках элементов, тогда отсортированные std :: vector и std :: binary_search являются очень эффективной альтернативой множеству.