0
私はC++を初めて使用していますが、問題が発生しています。セットにアイテムを追加すると、最初のアイテムだけが追加されているようです。私はそれが私の比較機能と関係があると思う。C++アイテムをセットに追加する
メイン
set<obj> objs;
objs.insert(obj1);
objs.insert(obj2);
objs.insert(obj3);
cout << objs.size() << endl; //Outputs 1
for (Obj const& obj: objs)
{
obj.display();
}
マイ比較
bool operator<(const obj& Left, const obj& Right)
{
if (Left.getID() == Right.getID())
{
return true;
}
return false;
}
'のstd :: set'は厳しい弱い順序付けを必要とし、' == 'その要件を満たしていない、はい、あなたは正しいと思います。しかし、誰かがなぜ '=='で 'operator <'を実装するのだろうと思いますが、そのような考え方はあなたの心にどのようなものがありますか? 'return' Left.getID()
Slava
よろしくお願いします。どのように私はこの問題を解決済みと記していますか? –
@MichaelGrinnell:あなたのせいではないが、Slavaはコメント空間に答えを入れた。答えを記入できるようにコピーします。 – MSalters