Std::map - Доступ к элементу без исключения и без вставкиC++

Программы на C++. Форум разработчиков
Anonymous
Std::map - Доступ к элементу без исключения и без вставки

Сообщение Anonymous »

У меня есть повторяющийся шаблон с использованием std::map.

Я хочу получить значение только тогда, когда ключ присутствует, иначе я не хочу вставлять элемент. В настоящее время я использую count(key) или find(key) (какой из них лучше? Судя по документации, сложность одинакова), и если они возвращают положительное значение, я получаю доступ к карте. Однако мне бы хотелось избежать использования двух операций на карте. Что-то вроде:

Код: Выделить всё

map myMap;
int returnvalue;
boole result = myMap.get("key1",returnValue)
if(result){
\\ use returnValue
}
Читая документацию std::map на cplusplus.com, я нашел две функции для доступа к элементам карты:
  • at(): которая выдает исключение, если ключ отсутствует.
  • []: которая вставляет новое значение, если ключ отсутствует.
Ни одна из них не удовлетворяет моему запросу. необходимость.

Подробнее здесь: https://stackoverflow.com/questions/192 ... -insertion

Вернуться в «C++»