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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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