wro*_*ame 1 c++ arrays int optimization boolean
我正在开发一个程序,需要将数组复制数千次/数百万次.现在我有两种表示数组中数据的方法:
一系列的整数:
int someArray[8][8];
Run Code Online (Sandbox Code Playgroud)
其中someArray[a][b]可以有0,1或2的值,或
一组指向布尔值的指针:
bool * someArray[8][8];
Run Code Online (Sandbox Code Playgroud)
where someArray[a][b]可以是0(空指针),否则*someArray[a][b]可以是true(对应于1)或false(对应于2).
哪个数组的复制速度会更快(是的,如果我指向booleans数组,我每次复制数组时都要声明新的bool)?
其中复制速度更快的是,分配和释放条目的开销,以及解除引用指针以检索每个值,对于您的bool*方法将淹没复制的成本.
如果您只有3个可能的值,请使用一个数组,char并且复制速度要快4倍int.好吧,这不是一个科学证明的声明,但阵列将小4倍.