在 C++ 中,使用 array.at(i)
函数还是使用 array[i]
?一个比另一个更有效吗?
最佳答案
at()
方法对传递的索引执行边界检查,operator[]
不会。
因此,如果您有很多元素访问,从性能角度来看,使用 at()
可能会更慢。
(我记得我在旧版本的 MSVC 中对大矩阵进行了一些测试,访问每个项目时使用和不使用边界检查是有区别的。像往常一样,如有疑问,请测量。)
另请注意,在某些实现(例如 MSVC 的实现)中,operator[]
在调试 构建中执行边界检查。
关于C++ array.at(i) 和 array[i] 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35721924/