Ich versuche einfach, einen gerichteten gewichteten Graphen mit Vektoren, Listen und Klassen in C++ zu implementieren, aber ich bekomme diesen Fehler. Die Linie wird mir diesen Fehler gibt, ist Zeile 42:21 wo graph[u].push_back(edge(v, w));
Fehler: keine realisierbare Konvertierung von "Edge" zu "Const value_type"?
#include <iostream>
#include <vector>
#include <list>
#include <stack>
using namespace std;
class edge
{
private:
int cost;
int vertex;
public:
edge(int vertex, int cost)
{
this->vertex = vertex;
this->cost = cost;
}
int getVertex() const
{
return vertex;
}
int getCost() const
{
return cost;
}
};
class Graph
{
private:
int V;
std::vector<std::list<edge> > *graph;
public:
Graph(int V);
void addEdge(int u, int v, int w);
void DFS();
};
Graph::Graph(int V)
{
this->V = V;
graph = new std::vector<std::list<edge> >(V);
}
void Graph::addEdge(int u, int v, int w)
{
graph[u].push_back(edge(v, w));
}
int main()
{
return 0;
}
Dank für Ihre Hilfe danken!
Wenn ich es aus einem Zeiger zu entfernen, gibt es mir diesen Fehler: Fehler: keine lebensfähige überladene '=' Grafik = neue Std :: Vektor> (V); –
Löschen Sie das 'neue'. Oder, besser, verwenden Sie Member Initialiser in Ihrem Konstruktor. –
Es funktionierte Herr, danke für Ihre Geduld mit mir! –