[在CPP入门或其他网站中,我发现count
(来自map
STL)的定义非常模糊和误导:
在容器中搜索具有等于k的键的元素并返回匹配数
[到目前为止,我研究的是key
是奇数,映射值也是-映射值可以通过赋值来更改。
所以它不只是返回容器是否包含密钥?而不是count?我在理解这个概念时哪里错了?
因为地图容器中的所有元素都是唯一的,所以该函数只能返回1(如果找到了元素)或零(否则)。
[A std::map
的count
()将始终返回0或1。
但是C ++库具有其他关联容器,这些容器很可能具有相同键的多个值。像std::multimap
和std::multiset
。碰巧的是,他们还有一个count()
方法,该方法实际上可能返回大于1的值。
但是,这允许您通过开发可以使用任何关联容器的模板进行元编程,该关联容器可以是唯一的,也可以不是唯一的。模板所需要做的就是使用count()
确定具有给定键的容器中存在多少个值,并且最终结果可以与std::map
或std::multimap
一起使用。一点也不在乎。在这两种情况下,您的模板都会得到正确的答案:具有给定键的容器中的值数。