为什么std :: map有一个名为count的成员函数?

Sem*_*aki 6 c++ stdmap std

我正在学习C++,显然是一种检查a中是否存在特定键的方法std::map是使用成员函数count.

我的第一个问题是:键不应该是唯一的吗?确实检查文档它们是唯一的,因此count将返回0或1.

打电话不是有点违反直觉count吗?为什么不exist呢?

对于我来说,计数在一个列表中是有意义的,在该列表中您期望出现一些元素,但如果该方法只允许返回1或0,则对我来说没有意义.

我错过了什么吗?是否有理由将其称为count或者只是一个糟糕的命名?

Bat*_*eba 8

这有点像使用一种方法.numberOfWives()来确定你是否已婚.是否有助于构建通用代码.

当然,它通常是 0或1(std::map),但它可能不止一个(std::multimap或一夫多妻的司法管辖区).

  • 有趣的例子+1 (2认同)
  • 虽然有点过时和不准确:)这至少应该是依赖于语言环境的我猜. (2认同)
  • @lubgr:是的,考虑重构`.numberOfWives()+ .numberOfHusbands()`; 并考虑无符号类型溢出的含义. (2认同)