在this question的会议记录中,发现C ++标准似乎没有对std::vector<T>::clear
提出时间复杂性要求。
23.2.3下的表100说:
销毁
a
中的所有元素。使所有引用,指针和迭代器无效,引用a
的元素,并可能使过去的迭代器无效。发布:a.empty()
返回true
而且......就是这样。在23.3.6下没有专门的条目,并且没有显式表明以下内容适用于clear
:
[C++11: 23.3.6.1/1]:
向量是一个支持随机访问迭代器的序列容器。另外,支持(分期)常量时间插入和擦除操作;在中间插入和擦除需要线性时间。存储管理是自动处理的,但可以提供提示以提高效率。 [..]
所以......这是真的吗?或者我只是错过了它?