qt — не найдено совпадений для оператора & lt; ошибка. Переполнение стека

У меня есть проект, над которым я работаю из CS106B Стэнфорда, который просто поражает.
У меня есть структура dieLocation, которая должна представлять местоположение кубика на моей доске Boggle.

typedef struct dieLocation {
int row, column;
}dieLocation;

У меня тогда есть этот код:

Set<dieLocation> Boggle::getUnmarkedNeighbors(Grid<bool> &markedLocations, dieLocation currentDie) {
int row = currentDie.row;
int column = currentDie.column;
Set<dieLocation> neighbors;
for(int currRow = row - 1; currRow < row + 1; currRow++) {
for(int currCol = column - 1; currCol < column + 1; currCol++) {
//if neighbor is in bounds, get its row and column.
if(markedLocations.inBounds(currRow, currCol)) {
//if neighbor is unmarked, add it to the  neighbors set
if(markedLocations.get(currRow, currCol)) {
dieLocation neighbor;
neighbor.row = currRow;
neighbor.column = currCol;
neighbors.add(neighbor);
}
}
}
}
return neighbors;
}

Я пытаюсь построить этот проект в Qt Creator, но получаю сообщение об ошибке:
нет совпадения для оператора<‘(типы операндов: const dieLocation и const dieLocation)

Что делает мой код, так это назначает строку и столбец переданного dieLocation соответствующим переменным.
затем он проходит по каждой строке, начиная с одной строки меньше, чем переданная, до еще одной
То же самое касается столбцов. Тем не менее, я считаю, что я сравниваю целые числа в цикле for, но он говорит, что я сравниваю dieLocations? Кто-нибудь понимает, почему это происходит?

0

Решение

operator < используется внутри вашего Set для заказа товаров. Вы должны определить это для struct dieLocation, Например:

inline bool operator <(const dieLocation &lhs, const dieLocation &rhs)
{
if (lhs.row < rhs.row)
return true;
return (lhs.column < rhs.column);
}
1

Другие решения


По вопросам рекламы [email protected]