是什么让STL快?

jas*_*ine 7 c++ performance stl

如果以通常实现的方式实现数组类,则其性能与其像STL等效的向量相比较慢.那么是什么让STL容器/算法变得快速?

Man*_*uel 10

STL算法喜欢for_each使用可以轻松内联的函数对象.另一方面,C使用函数指针,这对于编译器来说更难以优化.

这在一些算法中有很大的不同,例如必须多次调用比较器函数的排序.

如果您有兴趣,维基百科会提供更多信息.

编辑:

至于STL的矢量类,我不认为你可以在glibc中找到它的速度.


Jer*_*fin 5

大多数人的数组类通过常量增量而不是常数因子(如标准库所需)增加大小.这意味着插入元素需要大致线性时间,而不是标准库的摊销常量时间.

  • @DrJokepu:你假设开发人员拥有计算机科学学位:) +1 (4认同)
  • 任何开发者都应该放弃他的计算机科学学位 (2认同)