Я читал разные статьи по веб-вопросам и вопросам на stackoverflow, но для меня неясно, есть ли какой-либо эксклюзивный случай, когда лучше использовать std::map::at
для извлечения элемента карты.
В соответствии с определение, std::map::at
Возвращает ссылку на сопоставленное значение элемента, идентифицированного с помощью ключ k.
Если k не соответствует ключу любого элемента в контейнере, функция выбрасывает исключение out_of_range.
Для меня только случай, когда стоит использовать std::map::at
, когда вы 100% уверены, что элемент с определенным ключом существует, иначе вы должны рассмотреть обработку исключений.
- Есть ли случай, когда
std::map::at
считается наиболее эффективным и элегантным способом? В каких случаях вы рекомендуете использоватьstd::map::at
? - Правильно ли, что лучше использовать
map::find()
, когда есть возможность не иметь элемент с таким ключом? Иmap::find()
это более быстрый и элегантный подход?
if ( map.find("key") != map.end() ) { // found } else { // not found }
p.s
map::operator[]
иногда может быть опасным, потому что, если элемент не существует, он будет его вставлять.
EDITED: ссылки как-то связаны ссылка 1 ссылка 2 ссылка 3 ссылка 4 ссылка 5 ссылка 6