私はまだC++に慣れていないので、エラーを修正する方法がわかりません。私が取得しているエラーは、「バイナリ式のオペランドが無効です」と言っています。誰でもこれを修正する方法について何か考えがありますか? どんな助けでも大歓迎です!! Xcode 4.5.2 を使用しています。ありがとう!
【編集】わかりました。以下のコードを更新しました。同じ行 (find()) で同じエラーが引き続き発生します...しかし、変更点は次のとおりです...
Vertex myVertex = new Vertex(1);
に
Vertex myVertex(1);
< の演算子オーバーロードを追加
struct Vertex {
int node;
bool known;
float distance;
Vertex *path;
Vertex(int n=0, bool known=false, duuble dist=INFINITY):
node(n), known(known), distance(dist) {}
};
struct Edge {
Vertex target;
float weight;
bool directed;
Edge(Vertex v2, float w, bool dir):target(v2), weight(w), directed(dir) {}
};
class Graph {
public:
/*unrelated members are removed*/
void findVertex() {
Vertex myVertex(1);
map<Vertex, vector<Edge> >::iterator itr;
itr = edges.find(myVertex); // <--- this is the line the error seems to related to
}
friend bool operator< (const Vertex& lhs, const Vertex& rhs) {
return lhs.node < rhs.node;
}
private:
/*unrelated members are removed*/
vector<Vertex> vertices;
map<Vertex, vector<Edge> > edges;
};