K12教育赛事综合服务平台
聚乐之家官方网站
下载聚乐之家官方App
专注青少年竞赛题库网站
假设运行环境为普通x86架构CPU,C++默认采用行优先的二维数组内存存储策略,int类型占4字节,CPU缓存行大小为64字节。
按列优先遍历二维数组的性能通常优于按行优先遍历
使用一维数组模拟二维数组(如arr[i*N +j]代替arr[i][j])一定能大幅提升性能,因为减少了一次寻址计算
arr[i*N +j]
arr[i][j]
对按行存储的二维数组做遍历时,将最内层循环对应数组的第二维下标,能获得更高的缓存命中率
二维数组的大小不会对遍历性能产生影响,只要遍历顺序正确性能就一致