读取数组的第一个元素或第4000个元素是否更快?

时间:2017-08-14 18:26:59

标签: c++ arrays memory-access

从数组的第一个元素而不是第4000个元素读取时是否存在速度差异?对于数组中的任何其他元素也是如此。

主要询问c ++,但任何语言都没问题。

对于数组,它将是一个整数数组。

4 个答案:

答案 0 :(得分:4)

如果您专门调用数组中的元素并且您知道要检索的元素数组中的确切位置,那么速度就没有区别。但是,如果涉及到某个循环,或某些类型的功能在阵列中搜索特定值,则速度可能会受到影响。

答案 1 :(得分:2)

应该是一样的。如果您知道要查找的元素的索引,则无需担心,如果没有,在循环遍历大型数组时要小心。

可能取决于某种语言,但我确信它在Java或C / C ++中都是正确的,其余的我真的无法说出来。

好的,现在我看到你在谈论C ++,所以你可以确定它'同样的。

答案 2 :(得分:1)

在C ++中是完全相同的,这就是为什么数组是优秀的结构,以便为算法做很多依赖于这个事实的事情。

答案 3 :(得分:1)

在给定显式地址的情况下访问内存中的内容是O(1)

访问数组元素是通过获取数组的起始位置然后添加偏移量来完成的。

egif arr = 0x000001f0

访问arr [0] = 0x000001f0 + 0x00000000

访问arr [256] = 0x000001f0 + 0x00000100

[免责声明:可能因操作系统和虚拟化而有所不同......而且......不要担心]