Я пытаюсь создать программу на c ++, где я могу динамически добавлять точки в список, а затем искать, есть ли эти точки в списке.
Я изначально пытался использовать наборы, но я сейчас пытаюсь использовать векторы. Мой код ниже будет работать, но получит ошибку, связанную с оператором поиска if.
#include <stdio.h> /* printf */
#include <bits/stdc++.h> /* vector of strings */
#include <algorithm>
#include <vector>
using namespace std;
void solve_point(vector<vector<char>> &board)
{
printf("solve_point\n");
board[2][2] = 'c';
}
struct point
{
int x;
int y;
};
int main()
{
vector<point> vec;
point point1{4, 1};
point point1{8, 3};
vec.push_back(point1);
if (find(vec.begin(), vec.end(), point1) != vec.end())
{
printf("point1 found in vec\n");
}
else
{
printf("point1 not found in vec\n");
}
}
Это приводит к некоторым ошибкам, говорящим:
/usr/include/c++/7/bits/predefined_ops.h:241:17: error: no match for ‘operator==’ (operand types are ‘point’ and ‘const point’)
{ return *__it == _M_value; }
..and..
/usr/include/c++/7/bits/predefined_ops.h:241:17: note: ‘point’ is not derived from ‘const __gnu_cxx::new_allocator<_Tp>’
{ return *__it == _M_value; }
Я столкнулся с ошибкой, подобной этой ранее, когда пытался вставить точку в набор, есть ли что-то не так с моя инициализация структуры точки? Спасибо