我试图制作一个解决基于图像的迷宫的程序。编程我在迷宫中连接顶点以创建边缘的部分(我想将迷宫变成图形)我得到了这个错误。这似乎是因为std::find
,但我不知道出了什么问题。我已经尝试过搜索这个问题,但我似乎无法找到我想要的东西。
这是我的代码中出现问题的部分:
// the struct used to define the coordinates
struct pixelCoord {
int x, y;
pixelCoord(int paramx, int paramy) : x(paramx), y(paramy) {}};
{...}
std::vector<pixelCoord> vertices;
// adding vertices as pixel coordinates on my image
{...}
// initializing graph
Graph g(vertices.size());
// searching for and adding edges to graph
for (size_t k = 0; k < vertices.size(); k++) {
int l = 1;
while (maze_bmp.getPixel(vertices[k].x, (vertices[k].y + l))[0] == 255) {
ptrdiff_t next_vertex_pos = std::find(vertices.begin(), vertices.end(), pixelCoord(vertices[k].x, (vertices[k].y + l))) - vertices.begin();
//if (next_vertex_pos >= vertices.size()) {
// g.addEdge(k, next_vertex_pos, l);
// break;
//}
l++;
}
同样maze_bmb.getPixel(...)
只是一个函数,用于返回像素的RGB值以进行比较,而不是其他。
谢谢!
答案 0 :(得分:1)
为了使用&#34; ==&#34;对于已实现的类/结构的运算符,您需要重载&#34; ==&#34;该课程的操作员。您可以查看此链接以了解有关重载运算符的更多信息:Operator Overloading