c++ - 用另一个替换多维数组?

标签 c++ arrays multidimensional-array replace char

我正在制作一个 2D 游戏来训练我的类(class)管理。

我有两个多维数组:Map1Map。我想用 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/

相关文章:

c++ - 为什么在使用 Qt Creator 用 C 语言编译代码时出现错误,但使用 make 文件可以轻松做到这一点?

c++ - 在 C++ 中数值计算一个积分

python - 在 numpy 中将同一行堆叠到堆叠二维矩阵的最佳方法是什么?

C#/C++ - 内存泄漏

c++ - 不能使用显式类型的 lambda

c - strcpy() 不适用于某些字符串,但不适用于其他字符串

arrays - 查找数组中的重复元素

使用数据输入创建的数组的 Java 程序

c++在转换中为多数组错误添加值(value)

c++ - 遍历多维数组时遇到问题