私は、c++ コンパレータの厳密な弱い順序付けに従う必要があることを知っています。そして主な理由は、それ!(a > b) && !(b > a)が等価演算子として機能することです。
しかし、問題は、等価演算子 not like を必要としない場所でのみソートすることですstd::set。
たとえば、セットのベクトルがあり、セット A が B の適切なサブセットである場合、並べ替え後、セット A のインデックスはセット B のインデックスよりも小さくなければなりません。
したがって、このようにコンパレーターを書くと仮定します
bool comparator(vector<int> &A, vector<int> &B) const {
// if A is proper subset of B, return true
// otherwise, return false
}
ではstd::sort、このコンパレータは常にトポロジカル ソートのように機能しますか?
プラス)
不足している情報を提供してくれた Oliver Charlesworth に感謝します。
このようなコンパレータが、トポロジカル ソートとしてクイック ソートや挿入ソート (いくつかの有名な比較ベースのソート アルゴリズム) と連携することを本当に知りたいです。