Sim*_*ley 1 c++ stl list vector
我感到困惑的我的测试代码性能std::vector和std::list.有这两个之间的差异,当谈到find_if和max_element?
std::vector
std::list
find_if
max_element
Sti*_*sis 7
就big-O表示法而言,两者都具有相同的O(n)性能.(find_if如果更早找到元素,可以更少,但对于两个容器同样如此.)
就实际挂钟时间而言,由于高速缓存一致性,矢量将表现更好; 所有向量元素都在内存中是顺序的,因此访问它们将更好地利用CPU缓存.链表的元素可以分散在整个内存中,您还需要遵循需要时间的列表链接.
归档时间:
12 年,11 月 前
查看次数:
899 次
最近记录: