我正在制作一个 2D 游戏来训练我的类(class)管理。
我有两个多维数组:Map1
和 Map
。我想用 Map1
值替换 Map
值。如果不像 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
...
关于c++ - 用另一个替换多维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41333356/