它真正检查的是 contains() 而不是出现的次数,对吧?也不允许重复,所以 contains() 不是比 count() 更好的名字吗?
最佳答案
这是为了使其与其他容器类保持一致,因为多态性的一个重要方面是能够使用相同的 API 处理不同的类。
它确实实际上返回了计数。一个集合的计数只能为零或一个这一事实不会改变这一方面。
它与集合对象根本上并没有什么不同,后者只允许同时具有每个“值”的两个事物。在那种情况下,它会返回零、一或二的计数,但它仍然是一个计数,与集合相同。
标准的相关部分是 C++11 23.2.4
,其中讨论了关联容器 set
、multiset
, map
和 multimap
。表 102 包含对这些关联容器的要求以及对“常规”容器的要求,count
的位解释如下:
size_type a.count(k)
- returns the number of elements with key equivalent tok
. Complexity islog(a.size()) + a.count(k)
.
关于c++ - C++ STL set容器的count()方法为什么这样命名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16534931/