在这个问题std::vector<T>::clear
的处理过程中,发现 C++ 标准似乎没有时间复杂度要求。
23.2.3 下的表 100 说:
销毁
a
. 使所有引用的元素的引用、指针和迭代器失效,a
并且可能使过去的迭代器失效。帖子:a.empty()
退货true
而且……就是这样。在 23.3.6 下没有专门针对它的条目,也没有明确表明以下适用于clear
:
[C++11: 23.3.6.1/1]:
向量是支持随机访问迭代器的序列容器。此外,它还支持(摊销)恒定时间的最后插入和擦除操作;在中间插入和擦除需要线性时间。存储管理是自动处理的,但可以给出提示以提高效率。[..]
所以……这真的是真的吗?还是我只是错过了它?