Поскольку std::map
и другие не мультиассоциативные контейнеры хранят только уникальные элементы, существует вероятность того, что когда вы вставляете что-то в это, оно фактически не будет вставлено, поскольку оно уже может присутствовать. insert
поэтому возвращает std::pair<iterator, bool>
, где bool будет истинным, если вставка прошла успешно, и ложным в противном случае.
Я хотел бы отметить, что вы можете избавиться от оператора if в l oop. Из-за того, как operator[]
карты работает, l oop можно заменить на
for (const auto & elem : vecOfStrings) // also added const here since we don't need to modify elem
{
++countMap[elem];
}
И теперь, если существует elem
, вы увеличиваете значение, а если его нет, добавляете elem
к карте и увеличьте ее значение.