C++ 使用已知值,如何查找二维数组';s索引?

C++ 使用已知值,如何查找二维数组';s索引?,c++,arrays,dictionary,multidimensional-array,iterator,C++,Arrays,Dictionary,Multidimensional Array,Iterator,为了学习如何制作地图移动系统,我已经取得了以下成果: 这是我打算遍历的地图,每个位置都会打开一个唯一的区域,带有数字的值对应于输入,如N、W、E、S int坐标[3][3]{ {0, 1, 2} , {7, 9, 3} , {6, 5, 0} }; 地图移动表; 移动_表[“n”]=1; 移动_表[“ne”]=2; 移动_表[“e”]=3; 移动_表[“se”]=4; 移动_表[“s”]=5; 移动_表[“sw”]=6; 移动_表[“w”]=7; 移动_表[“nw”]=8; /

为了学习如何制作地图移动系统,我已经取得了以下成果:


这是我打算遍历的地图,每个位置都会打开一个唯一的区域,带有数字的值对应于输入,如N、W、E、S


int坐标[3][3]{
{0, 1, 2} , 
{7, 9, 3} ,   
{6, 5, 0}   
};
地图移动表;
移动_表[“n”]=1;
移动_表[“ne”]=2;
移动_表[“e”]=3;
移动_表[“se”]=4;
移动_表[“s”]=5;
移动_表[“sw”]=6;
移动_表[“w”]=7;
移动_表[“nw”]=8;
//输入值后,起始位置更新
int位置=坐标[1][1];
字符串命令;
cout命令;
//托洛尔()
转换(command.begin(),command.end(),command.begin(),::tolower);
//检查命令是否在命令映射内有效(稍后将更新此命令…关注数组位)
if(Move_Table.find(命令)=Move_Table.end()){
第二;

cout只需对
循环使用简单的

int x, y;
int found = 0;
for (x = 0; !found && x < 3; x++) {
    for (y = 0; y < 3; y++) {
        if (Coordinates[x][y] == search_value) {
            found = 1;
            break;
        }
    }
}
if (found) {
    printf("x = %d y = %d\n", x, y);
} else {
    printf("Not found\n");
}
intx,y;
int=0;
对于(x=0;!已找到&&x<3;x++){
对于(y=0;y<3;y++){
if(坐标[x][y]==搜索值){
发现=1;
打破
}
}
}
如果(找到){
printf(“x=%d y=%d\n”,x,y);
}否则{
printf(“未找到”);
}

int坐标
缺少值4和8。这是有意的吗?您可以直接将(x,y)对存储在映射中,而不是存储到映射中的数组的索引:
map Move_Table{{“n”,“0,1},[…]}
Ooh,我喜欢这个主意@TomasDittmann,但我不知道如果它们是这样嵌套的,如何将它们从地图中拉出来?所以我知道如何使用…
Move\u Table.find(命令)->第二个
对吗?如果我想在一个整数变量中存储x和y,嵌套对是如何工作的?该对本身又有
第一个
第二个
成员。因此x将是
->第二个。第一;
和y将是
->第二个。第二;
int x, y;
int found = 0;
for (x = 0; !found && x < 3; x++) {
    for (y = 0; y < 3; y++) {
        if (Coordinates[x][y] == search_value) {
            found = 1;
            break;
        }
    }
}
if (found) {
    printf("x = %d y = %d\n", x, y);
} else {
    printf("Not found\n");
}