为什么C++ STL设置容器的count()方法如此命名?

Cri*_*ter 8 c++ naming stl naming-conventions

它真正检查的是contains()而不是出现次数的计数,对吧?不允许重复,所以不包含()是一个比count()更好的名字?

pax*_*blo 12

这是为了使它与其他容器类保持一致,因为多态的一个重要方面是能够使用相同的API处理不同的类.

确实返回了计数.计数只能为零或一组的事实不会改变该方面.

它与一个集合对象没有根本的不同,它只允许同时拥有每个"值"的两个东西.在这种情况下,它将返回零,一或两个计数,但它仍然是一个计数,与一个集相同.

该标准的相关部分需要这是C++11 23.2.4它谈到了关联容器set,multiset,mapmultimap.表102包含了超出"常规"容器要求的这些关联容器的要求,count下面将对其进行解释:

size_type a.count(k)- 返回具有等效键的元素数k.复杂性是log(a.size()) + a.count(k).