unordered_map cbegin()+ number //常量复杂度?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unordered_map cbegin()+ number //常量复杂度?相关的知识,希望对你有一定的参考价值。

正如标题所说,我知道unbedered_map的cbegin()具有恒定的复杂性,但是是常量复杂度的迭代器的迭代。例如:cbegin()++; cbegin()+ 10; cbegin()+ i; CEND() - ;这些都是o(1)???

答案

24.2.1 [iterator.requirements.general]

所有迭代器类别仅需要在恒定时间内(摊销)可以为给定类别实现的那些函数。因此,迭代器的需求表没有复杂性列。

这的第一部分可能有些令人困惑,但它说的并不是所有迭代器类型都支持所有操作(即,没有使用前向迭代器的随机访问);但那些定义的功能,他们总是have amortized constant complexity。该标准没有明确指定每个迭代器方法的复杂性;它似乎表明,在本节中,定义的那些迭代器方法必须具有分摊的常量复杂性。

以上是关于unordered_map cbegin()+ number //常量复杂度?的主要内容,如果未能解决你的问题,请参考以下文章

C++ begin( ) cbegin( ) end() cend()区别

unordered_map / HashTable 的负载因子是什么意思

需要帮助了解 unordered_map 的两种用法之间的区别

unordered_map 的最坏情况是啥?

Unordered_Map 查找时间

2019CCPC秦皇岛:AAngle Beats 分类讨论 (unordered_map 加 hash)