大小的时间复杂度是多少?
What are the time complexities for size?
我正在研究不同STL容器的各种操作的复杂性。通过本网站上的 ,我找到了这张图表。
我注意到此图表中缺少一个操作是大小操作。
我想如果知道 .begin 和 .end 的复杂性,也可以计算大小的复杂性。但那些也不见了。
我找到了一个类似于我在 this 问题中寻找的答案,但是这个是针对 Java 的,所以它没有涵盖所有的 STL 容器,它只定义了大的一些给定数据类型的大小为 O。
有谁知道各种容器的 .size 操作的复杂性,或者有人可以指点我在哪里可以找到这些复杂性。任何帮助将不胜感激。
此外,如果我的问题表述错误 and/or 离题。请毫不犹豫地提出修改建议。
自 C++11 起,size
成员函数的复杂度对于所有标准容器都是恒定的。
std::forward_list
是单链表数据结构的实现,没有提供size
成员函数。可以使用迭代器以线性时间计算大小。
除了标准的 C++ 容器之外,所有数据结构都可以使用单独存储的大小变量进行扩充,以以插入和删除操作的小常量开销为代价实现这种常量复杂性。数组的特殊之处在于它不需要任何额外的开销,假设存储了结束迭代器。
我正在研究不同STL容器的各种操作的复杂性。通过本网站上的
我注意到此图表中缺少一个操作是大小操作。 我想如果知道 .begin 和 .end 的复杂性,也可以计算大小的复杂性。但那些也不见了。
我找到了一个类似于我在 this 问题中寻找的答案,但是这个是针对 Java 的,所以它没有涵盖所有的 STL 容器,它只定义了大的一些给定数据类型的大小为 O。
有谁知道各种容器的 .size 操作的复杂性,或者有人可以指点我在哪里可以找到这些复杂性。任何帮助将不胜感激。
此外,如果我的问题表述错误 and/or 离题。请毫不犹豫地提出修改建议。
自 C++11 起,size
成员函数的复杂度对于所有标准容器都是恒定的。
std::forward_list
是单链表数据结构的实现,没有提供size
成员函数。可以使用迭代器以线性时间计算大小。
除了标准的 C++ 容器之外,所有数据结构都可以使用单独存储的大小变量进行扩充,以以插入和删除操作的小常量开销为代价实现这种常量复杂性。数组的特殊之处在于它不需要任何额外的开销,假设存储了结束迭代器。