A std::map
's count
() всегда будет возвращать либо 0, либо 1.
Но библиотека C ++ имеет другие ассоциативные контейнеры, которые вполне могут иметь несколько значений для одного и того же ключа. Как std::multimap
и std::multiset
. И, по счастливой случайности, у них также есть метод count()
, который может на самом деле возвращать значения больше 1.
Но это позволяет вам делать метапрограммирование, разрабатывая шаблоны, которые могут использовать любой ассоциативный контейнер, такой, который может или не может быть уникальным. Все, что нужно сделать вашему шаблону - это использовать count()
, чтобы определить, сколько значений существует в контейнере с данным ключом, и конечный результат можно использовать с std::map
или std::multimap
. Это не заботится ни в малейшей степени. В обоих случаях ваш шаблон получит правильный ответ: количество значений в контейнере с заданным ключом.