タイトルが不明瞭で申し訳ありませんが、実際には自分の問題を簡潔に説明するタイトルを考えることができませんでした。
しかし、質問は簡単に述べることができます。Nodeクラスがあります。id_フィールドによってオブジェクト間の順序を維持したいと思います。Nodeクラスで<演算子をオーバーロードするか、multisetでComparatorオブジェクトを提供すると、multiset<Node>を作成するとコンテナ内の順序が正しく維持されることを知っています。しかし、multiset <Node *>コンテナーを宣言し、同じ動作を実現したいと思います。
これが私のNodeクラスの定義です:
class Node {
int id_;
...
public:
Node() {
...
}
int getId() {
return id_;
}
void setId(int id) {
id_ = id;
}
...
bool operator<(const Node &input) {
return (this->id_ < input.id_);
}
};
私は何をしますか?