当前位置:  开发笔记 > 编程语言 > 正文

C++对std :: set,std :: map等的常量时间开始/结束/ rbegin/rend执行吗?

如何解决《C++对std::set,std::map等的常量时间开始/结束/rbegin/rend执行吗?》经验,为你挑选了2个好方法。

对于std :: set和std :: map等数据类型,其中查询以对数时间发生,是否需要实现维护开始和结束迭代器?访问开始和结束是否意味着可能在对数时间内发生查找?

我一直认为开始和结束总是在恒定的时间内发生,但我在Josuttis找不到任何确认.现在我正在做一些我需要对表演进行肛门的事情,我想确保覆盖我的基础.

谢谢



1> nsanders..:

它们在不断的时间内发生.我正在查看ISO/IEC 14882:2003标准的第466页:

表65 - 集装箱需求

a.begin(); (不断复杂)

a.end(); (不断复杂)

表66 - 可逆容器要求

a.rbegin(); (不断复杂)

a.rend(); (不断复杂)



2> benefactual..:

是的,根据http://www.cplusplus.com/reference/stl/,begin(),end()等都是O(1).

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有