调用'maps::size(char [20], char&)'没有匹配函数,但我认为我的方法有

no matching function for call to 'maps::size(char [20], char&)' but I think that my method there is

本文关键字:char 函数 方法 我的 size 调用 maps      更新时间:2023-10-16
class maps{
public:
    int rows;
    int cols;
    void size(char **lvl, char corner);
private:
};
void maps::size(char **lvl, char corner){
    for(int c=0; *lvl[c]!=corner; c++){
        cols=c;
    }
    for (int r=0; *lvl[r * cols + 1]!=corner; r++){
         cols=r;
    }
}
int main(int argc, char** argv) {
char w = 189; //wall
char e = 122; //entity
char y = 206; //you
char s = ' '; //space
char c = 188; //corner
control control_you;
maps map_level;
char lvl1[10][20]={{w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, c},
                   {w, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, w},
                   {w, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, w},
                   {w, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, w},
                   {w, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, w},
                   {w, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, w},
                   {w, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, w},
                   {w, s, e, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, w},
                   {w, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, y, w},
                   {c, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w}};
map_level.size(*lvl1, c);
    return 0;
 }

bloc [错误]无匹配函数呼叫'Maps :: size(char [20],char&(

我不知道为什么它找不到我的功能,你能帮我吗?我不知道我是否在班上的功能中做错了什么,或者我很拼命,请帮助我。谢谢。

我会使用 std::vector<std::vector<char>>,但是我的方式我会更改这样的 size()方法:

void size(char* lvl, char corner){
    rows = 0;
    cols = 0;
    for (int c=0; lvl[c] != corner; c++){
        ++cols;
    }
    ++cols;  // count the corner 
    for (int r=0; lvl[r * cols] != corner; r++){
        ++rows;
    }
    ++rows;  // count the corner 
}

colsrowslvl1相同,包括 Corners hope 在正确的位置有拐角。

这样称呼:

map_level.size((char*)lvl1, c);

演示

在内存中如何格式化多维阵列?