地图计数确实计数或仅检查存在性

问题描述 投票:0回答:2

[在CPP入门或其他网站中,我发现count(来自map STL)的定义非常模糊和误导:

在容器中搜索具有等于k的键的元素并返回匹配数

[到目前为止,我研究的是key是奇数,映射值也是-映射值可以通过赋值来更改。

所以它不只是返回容器是否包含密钥?而不是count?我在理解这个概念时哪里错了?

c++ stl
2个回答
1
投票

根据cplusplus.com

因为地图容器中的所有元素都是唯一的,所以该函数只能返回1(如果找到了元素)或零(否则)。


0
投票

[A std::mapcount()将始终返回0或1。

但是C ++库具有其他关联容器,这些容器很可能具有相同键的多个值。像std::multimapstd::multiset。碰巧的是,他们还有一个count()方法,该方法实际上可能返回大于1的值。

但是,这允许您通过开发可以使用任何关联容器的模板进行元编程,该关联容器可以是唯一的,也可以不是唯一的。模板所需要做的就是使用count()确定具有给定键的容器中存在多少个值,并且最终结果可以与std::mapstd::multimap一起使用。一点也不在乎。在这两种情况下,您的模板都会得到正确的答案:具有给定键的容器中的值数。

© www.soinside.com 2019 - 2024. All rights reserved.