Meine Frage ist, können wir zwei std :: lists mit std :: sort function sortieren? Ich habe 2 String-Listen
%Vor%Während ich diese Listen sortiere, erhalte ich Fehler. Ich versuchte mit std :: vector, zu dieser Zeit funktioniert die Sortierung.
Der Fehler ist wie
C: \ Programme (x86) \ Microsoft Visual Studio 10.0 \ VC \ include \ xutility (1158): siehe Deklaration von 'std :: operator -' 1 & gt; C: \ Programme (x86) \ Microsoft Visual Studio 10.0 \ VC \ include \ Algorithmus (3642): Fehler C2784: '_Base1 :: Unterschiedstyp Std :: Operator - (const std :: _ Revranit & lt; _RanIt, _Base & gt; & amp; Const std :: _ Revranit & lt; _RanIt2, _Base2 & gt; & amp;): konnte das Template-Argument für 'const std :: _ Revranit & lt; _RanIt, _Base & gt; &Ampere;' von 'std :: _ List_iterator & lt; _Mylist & gt;' 1 & gt; mit 1 & gt; [ 1 & gt; _Mylist = Std :: _ List_val & gt; 1 & gt; ]
Ich muss wissen, dass nur std :: sort Listen unterstützt?
Sie sollten list::sort
verwenden, das möglicherweise einen anderen Algorithmus verwendet. std::sort
erfordert Direktzugriffs-Iteratoren (unterstützt Sprünge beliebiger Größe), während Listen-Iteratoren nur jeweils um eine Verbindung vorwärts oder rückwärts gehen können.
Siehe C ++ 11 25.4.1.1:
%Vor% und 23.3.5.5/27 (Mitglieder von std::list
):