错误 C2440:"返回":无法从"int [2]"转换为"int (&&)[2]"
Error C2440: 'return' : cannot convert from 'int [2]' to 'int (&&)[2]'
我已经有一段时间没有编程了,所以我的代码可能有点草率。该程序所做的唯一一件事就是创建一个只有左上角值true的4x4布尔网格。然后,它使用checkAdjacentFiles运行它,它应该返回与它接触的瓦片(右边的瓦片和下面的瓦片)。我得到了一个错误。我有一种感觉,这与我的向量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。
相关文章:
- 为什么在全局范围内使用"extern int a"似乎不行?
- int(c) 和 c-'0' 之间的区别。C++
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 为什么野牛仍在使用"int yylex(void)",却找不到"int yylex(YYS
- 有符号的int和int-有没有一种方法可以在C++中区分它们
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 是否可以从int转换为enum类类型
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 我不断收到错误 C2440'=':无法从"int *(__cdecl *)(int *,int *,int,int)"转换为"int *
- C2440 無法將 int 轉換為 int &
- 错误 C2440:"=":无法从 'char *(__cdecl *)(int,int)' 转换为 en 'GetItemText_t'
- 返回 NULL,但收到错误 C2440:'return':无法从'int'转换为'const &'
- 错误 C2440:"返回":无法从"int [2]"转换为"int (&&)[2]"
- 错误 C2440:"=":无法从"int"转换为"int*"
- 如何修复此错误错误"error C2440: '=' : cannot convert from 'int (*)[]' to 'int *' "?
- 需要帮助。C++ Z:\动态分配.cpp(18):错误 C2440:'=':无法从 'int' 转换为 'int *'
- decltype 错误 C2440 无法从'int *'转换为'int *&'
- C2440 '=' 无法从 'int' 转换为 'BST:<int>:Node*
- 错误 c2440 '='无法从 int * 转换为类型<T> *
- 错误 C2440: '=':无法从 'int' 转换为 'char [5]'