c++ - C++ STL set容器的count()方法为什么这样命名?

标签 c++ stl naming-conventions naming

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

最佳答案

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

确实实际上返回了计数。一个集合的计数只能为零或一个这一事实不会改变这一方面。

它与集合对象根本上并没有什么不同,后者只允许同时具有每个“值”的两个事物。在那种情况下,它会返回零、一或二的计数,但它仍然是一个计数,与集合相同。

标准的相关部分是 C++11 23.2.4,其中讨论了关联容器 setmultiset , mapmultimap。表 102 包含对这些关联容器的要求以及对“常规”容器的要求,count 的位解释如下:

size_type a.count(k) - returns the number of elements with key equivalent to k. Complexity is log(a.size()) + a.count(k).

关于c++ - C++ STL set容器的count()方法为什么这样命名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16534931/

相关文章:

python - C++ (STL map) 等效于 Python 的 setdefault 的方法

c++ - 如何在 C++11 的模板中只接受数字和字符串?

c++ - Qt + FreeType undefined reference

c++ - SWIG 如何在 Python 中包装 map<string,string>?

c++ - 同一用户定义类型的 STL 集和映射

VBA 模块命名约定

C# 字段命名指南?

c# - 把这个类称为 "factory"会让人感到困惑吗?

c++ - 以未指定大小、空括号定义的静态数组?

c++ - 如何在 C++ 中从另一个协程调用一个协程?