订购设置/地图的计数功能

Count function for ordered set/map

本文关键字:功能 地图 设置      更新时间:2023-10-16

container.count(val)-给出了容器中" val"的频率。为什么计数需要在有序集中以每个值" val"的范围遍历直到结束。我的意思是对于有序设置/地图,元素将按顺序进行,因此我们甚至可以在达到终点之前获得计数的最终值。我知道,这不适用于其他容器(列表,向量等)。

示例: -

set<int, less<int>> s{1, 2, 3, 4, 5, 6};
int cnt = s.count(2);  // return 1

由于设置/映射可以计数为0或1,一旦我达到2,它就会打破循环,而不是遍历结束。另外,编译器知道比较器(较少或更高)。对于多智能/多映射,可以做同样的方法,唯一的差异是计数>1。

来自N4618,§23.2.6,Page 848

关联容器要求

表达: b.count(k)
返回类型:size_type
断言/note/pre-/per-/post Condition:返回与k等同的键的元素数量
复杂性:log(b.size()) + b.count(k)

这意味着,根据定义,这些功能在确定k的计数是什么之前不能计算容器的每个元素。