将int数组与指向bools的指针复制

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)?

Ste*_*end 5

其中复制速度更快的是,分配和释放条目的开销,以及解除引用指针以检索每个值,对于您的bool*方法将淹没复制的成本.

如果您只有3个可能的值,请使用一个数组,char并且复制速度要快4倍int.好吧,这不是一个科学证明的声明,但阵列小4倍.