Нужно вот нам по ключу проверить вхождение элемента допустим в мапу.
Обычно мы пишем:
if (map.count(key)) {
// do something
}Но для контейнеров без приставки "multi" это выглядит довольно странно. Действительно, если я знаю, что в мапе однозначное соответствие ключа и значения, зачем мне знать сколько вхождений элементов с этим ключом? Я хочу просто знать, есть ли он.
Такие вот маленькие семантические несостыковочки. С ними вроде все смирились, но осадочек остался...
И 20-е плюсы наконец нам подарили замечательный публичный метод для всех ассоциативных контейнеров
contains. Он проверяет, если ли в контейнере элементы с данным ключом. Теперь код выглядит так:if (map.contains(key)) {
// do something
}И вот уже стало чуть приятнее и понятнее читать код.
Если есть доступ к 20-м плюсам, то переходите на использование этого метода.
Make things clearer. Stay cool.
#STL #cpp20