我正在制作2D游戏来训练类(class)管理。
我有两个多维数组:Map1
和Map
。我想用Map
替换Map1
值。我如何做到这一点而无需手动替换每个元素(如Map[0][0] = '#'
等)。
char Map[10][21] = {
"####################",
"# #",
"# #",
"# #",
"# #",
"# #",
"# #",
"# #",
"# #",
"####################"};
char Map1[10][21] = {
"####################",
"# #",
"# #",
"# #",
"# #",
"# TEST #",
"# #",
"# #",
"# #",
"####################"};
最佳答案
由于保证多维数组在内存布局中是连续的,因此和两个数组具有相同的大小,您可以执行以下操作:
std::copy((char*)Map1, (char*)Map1 + sizeof(Map1), (char*)Map);
注意,强制转换对于将整个副本作为char数组是必需的。
另一方面,如果您使用
std::vector<std::string>
,则可以直接分配此任务:Map = Map1
...