重複の可能性:
std::list<>::sort は安定していますか?
C++ std::list ソート関数は、リスト内の等しい要素の順序を保持することが保証されていますか? たとえば、リストにオブジェクト A、B、および C があり、A == C および B < A となるように比較演算子がオーバーロードされている場合、必然的に BAC を取得できますか、それとも BCA を取得できますか?
重複の可能性:
std::list<>::sort は安定していますか?
C++ std::list ソート関数は、リスト内の等しい要素の順序を保持することが保証されていますか? たとえば、リストにオブジェクト A、B、および C があり、A == C および B < A となるように比較演算子がオーバーロードされている場合、必然的に BAC を取得できますか、それとも BCA を取得できますか?
list::sort()
はい、 ISO 14882:2003 23.2.2.4[lib.list.ops]/31 に従って、C++ では安定しています。
Effects: Sorts the list according to the operator< or a Compare function object.
Notes: Stable: the relative order of the equivalent elements is preserved.
If an exception is thrown the order of the elements in the list is indeterminate.
はい、標準では list::sort が安定している必要があります。