C++ array.at(i) 和 array[i] 性能

标签 c++ arrays performance loops

在 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/

相关文章:

c++ - 未定义的异常引用

PHP 将多个数组中的数组值操作为单个数组

python - Numpy 数组 任意维度的顺序索引数组

Java 2D 数组,分配的是随机值,而不是应该分配的值

MySql 查询时间过长

python - 加速矩阵计算(循环子数组)[numpy]

mysql - 如何提高mysql查询时缓存的使用

c# - 如何在 C++ 中读取 IL

c++ - C/C++ 中的 CreateObject 等价物? (COM 互操作)

c++ - 为什么在通过模板使用 operator<< 时需要重载?