掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
priority_queue, operator<() (ID:67928)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
『プログラミング言語C++』p.553には、 priority_queueは、デフォルトで < 演算子によって要素を比較し、top()は 最大の要素を返す。 と書かれてあります。以下のa.cppとb.cppではどちらもoperator<を定義しているつもり ですが、a.cppの方はコンパイルが通りません。なぜですか? // (a.cpp)コンパイルできない #include <iostream> #include <queue> using namespace std; struct D { int p; bool operator<(const D& a) { return p < a.p; } }; int main() { priority_queue<D> q; // ERROR: instantiated from here } // (b.cpp)コンパイルできる #include <iostream> #include <queue> using namespace std; struct D { int p; }; bool operator<(const D& a, const D& b) { return a.p < b.p; } int main() { priority_queue<D> q; } // cygwin g++
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.