C ++ 11:std :: vector :: shrink_to_fit复杂性

时间:2013-05-13 09:16:15

标签: c++ c++11 stl time-complexity

article at cppreference.com表示std::vector::shrink_to_fit的复杂性是不变的。据我所知,只有元素不被移动才有可能,因为如果它们是复杂的那么 n 。它还说所有迭代器,包括过去的迭代器,都可能失效。这意味着元素的移动是一个明确定义的可能性。

这篇文章有问题吗? ......还是有任何我不知道的魔法?

1 个答案:

答案 0 :(得分:16)

文章有问题,我修好了。

虽然官方标准没有说明std::vector::shrink_to_fit的复杂性,但在N3376中他们改变了措辞,从而修复了DR 2033:

23.3.6.3:

  

void shrink_to_fit();

     

需要T MoveInsertable*this

     

复杂性:序列大小的线性。