21項 等しい値に対して比較関数が常にfalseを返すようにしよう
等しい値に対して比較関数が常にfalseを返すようにしよう
次のコードは、コンテナを破壊します。
set<int, LessEqual> s; //sは"<="でソートされる。 s.insert(2); s.insert(2);
2つ目の2を挿入した時、下の比較が行われます。
!(2 <= 2) && !(2 <= 2)
結果はfalseとなるため、2と2は別のものであるという結論になってしまいます。
このときの振る舞いは未定義です。
なので、等しい値に対して比較関数が常にfalseを返すようにします。