大小的时间复杂度是多少?

What are the time complexities for size?

我正在研究不同STL容器的各种操作的复杂性。通过本网站上的 ,我找到了这张图表。

website link

我注意到此图表中缺少一个操作是大小操作。 我想如果知道 .begin 和 .end 的复杂性,也可以计算大小的复杂性。但那些也不见了。

我找到了一个类似于我在 this 问题中寻找的答案,但是这个是针对 Java 的,所以它没有涵盖所有的 STL 容器,它只定义了大的一些给定数据类型的大小为 O。

有谁知道各种容器的 .size 操作的复杂性,或者有人可以指点我在哪里可以找到这些复杂性。任何帮助将不胜感激。

此外,如果我的问题表述错误 and/or 离题。请毫不犹豫地提出修改建议。

自 C++11 起,size 成员函数的复杂度对于所有标准容器都是恒定的。

std::forward_list是单链表数据结构的实现,没有提供size成员函数。可以使用迭代器以线性时间计算大小。

除了标准的 C++ 容器之外,所有数据结构都可以使用单独存储的大小变量进行扩充,以以插入和删除操作的小常量开销为代价实现这种常量复杂性。数组的特殊之处在于它不需要任何额外的开销,假设存储了结束迭代器。