Мне нужно реализовать граф со всеми его функциями-членами. Для этого я использовал вектор для хранения вершин и другой вектор для хранения ребер.
(Graph.h)
public:
Graph(vector<Vertex>, vector<Edge>);
virtual bool removeVertex(Vertex& v) = 0;
virtual bool searchVertex(const Vertex& v) = 0;
private :
vector <Vertex> vertices;
vector <Edge> edges;
};
Когда я пытаюсь реализовать такие функции, как searchVertex, removeVertex и т. Д., Я получаю несколько ошибок, таких как «нет соответствия для оператора ==» или «Vertex не является производной от const …». Я не знаю почему. Это выглядит так:
(Graph.cpp)
bool Graph::searchVertex(const Vertex& v ){
for(unsigned int i=0;i<vertices.size();i++){
if(v==vertices[i]){
return true;
}
}
cout<<"This vertex doesn't exist";
return false;
}
Край имеет 2 основные вершины (основание / конец) и вес в качестве атрибута. Вершина имеет идентификатор и значение в качестве атрибутов.
Я полагаю, что что-то не так, может быть, из-за const или вызова по ссылке, но я не очень знаком с этим … Должен ли я также использовать указатели? Помощь будет оценена. Спасибо
Задача ещё не решена.
Других решений пока нет …