【问题标题】:why std::map has a member function called count? [duplicate]为什么 std::map 有一个名为 count 的成员函数? [复制]
【发布时间】:2018-12-04 14:34:25
【问题描述】:

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

我的第一个想法是:键不应该是唯一的吗?并检查 documentation 确实是唯一的,因此 count 将返回 0 或 1。

称它为count 是不是有点违反直觉?为什么不exist

对我来说 count 在您期望元素出现多次的列表中是有意义的,但如果该方法只允许返回 1 或 0 对我来说没有意义。

我错过了什么吗?有理由称它为count 还是只是一个糟糕的命名?

【问题讨论】:

标签: c++ std stdmap


【解决方案1】:

这有点像使用.numberOfWives() 的方法来确定您是否已婚。完成这项工作并帮助构建通用代码。

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

【讨论】:

  • 虽然有点过时且不准确 :) 我猜这至少应该取决于语言环境。
  • @lubgr:是的,考虑重构为.numberOfWives() + .numberOfHusbands();并考虑无符号类型溢出的含义。
【解决方案2】:

count这个名字可以和其他容器统一,比如std::multimapstd::multisets

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    • 2015-11-14
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多