为什么认为数组比STL容器更好

Why is array considered better than STL containers?

本文关键字:更好 STL 数组 为什么      更新时间:2023-10-16

arraystd::queue,哪个在时间上更好,为什么?

我编写了一个图处理算法,其中边界顶点存储在std::queue中,使用push_back()pop_front()访问。当我用数组重新实现边界时,前端和结束指针指向边界顶点的开始和结束,我在时间方面得到了更好的结果。对于足够大的数据,数组真的比队列快吗?

对于大多数机器来说,数组更快,因为数组中连续的元素可以加载到相同的缓存行中(或者根据需要预先加载到缓存中)。由于L1缓存读取速度是主存访问速度的200倍,因此任何需要指针读取的内容都可能不在缓存中,并且需要更长的主存读取周期。

https://www.youtube.com/watch?v=YQs6IC-vgmo