2009-03-04 10 views
11

Je n'ai pas trouvé de réponse définitive à cette question.std :: list <> :: sort est-il stable?

Je suppose que la plupart des implémentations utilisent un tri de fusion stable, mais la stabilité est-elle une exigence ou un effet secondaire?

Répondre

23

C++ standard ISO/IEC 14882: 2003 dit:

23.2.2.4/31

Notes: Stable: l'ordre relatif des éléments équivalents est préservée. Si une exception est levée, l'ordre des éléments de la liste est indéterminé.

+3

+1. SGI et Stroustrup sont corrects mais pas la "réponse définitive". L'ISO 14882 est. – MSalters

+0

+1 - bienvenue à stackoverflow :) –

+0

Seulement de bonnes réponses mais j'admets que c'est le meilleur. ;) –

10

Selon "Le C++ Programming Language" (Stroustrup P470), oui, stl :: Liste <> :: sort est stable.

+0

Citation de la source: +1 – dalle