簡體   English   中英

錯誤C2440:“返回”:無法從“ int [2]”轉換為“ int(&&)[2]”

[英]Error C2440: 'return' : cannot convert from 'int [2]' to 'int (&&)[2]'

我已經有一段時間沒有編程了,所以我的代碼可能有點草率。 程序唯一要做的就是創建一個4x4 bool網格,其中左上角的值均為true。 然后,它使用checkAdjacentTiles運行它,它應該返回與之接觸的圖塊(右邊的一個和下面的一個)。 我得到一個錯誤。 我感覺這與我的向量有關: std::vector<int[2]> checkAdjacentTiles(bool[4][4]); ,因為int [2]。 謝謝您的幫助!

#include <stdio.h>
#include <vector>

std::vector<int[2]> checkAdjacentTiles(bool[4][4]);

int main() {
    bool grid[4][4];

    grid[0][0] = 1;
    std::vector<int[2]> temp = checkAdjacentTiles(grid);

    for (int i = 0; i < (int)temp.size(); i++) {
        printf("(%i, %i)\n", temp[i][0], temp[i][1]);
    }

    getchar();
    return 0;
}

std::vector<int[2]> checkAdjacentTiles(bool checkGrid[4][4]) {
    int relAdjacentSides[4][2] = { { -1, 0 }, { 0, 1 }, { 1, 0 }, { 0, -1 } };
    std::vector<int[2]> adjacentSides;

    for (int x = 0; x < 4; x++) {
        for (int y = 0; y < 4; y++) {
            for (int i = 0; i < 4; i++) {

                if (x + relAdjacentSides[i][0] >= 0 && x + relAdjacentSides[i][0] < 4) {
                    if (y + relAdjacentSides[i][1] >= 0 && y + relAdjacentSides[i][1] < 4) {
                        if (!checkGrid[x + relAdjacentSides[i][0], y + relAdjacentSides[i][1]]) {

                            bool stop = 0;
                            for (int v = 0; v < (int)adjacentSides.size(); v++) {
                                if (adjacentSides[v][0] == x + relAdjacentSides[i][0] && adjacentSides[v][1] == y + relAdjacentSides[i][1]) {
                                    stop = 1;
                                    break;
                                }
                            }

                            if (!stop) {
                                adjacentSides.push_back({ x + relAdjacentSides[i][0], y + relAdjacentSides[i][1] });
                            }

                        }
                    }
                }

            }
        }
    }

    return adjacentSides;
}

由於某種原因,我無法在向量中使用int[2] 我最終使用了std::pair<int,int> ,它工作正常。 謝謝jhnnslschnr。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM