Klitzekleine Frage zur einem Stringiterator



  • Hm ginge es dann noch leichter als so:

    tested = itString->substr(0,itString->length());
    

    Das ist nämlich irgendwie hässlich 😞



  • alles klar das ding, danke!



  • 😮 😮 Ich schwöre er hat das hier eben compiliert:

    myString = (*itString);
    

    Jetzt gehts mit mal nicht mehr?!
    Da beißt sich irgendwas in der algorithm?

    **
    C:\Programme\Microsoft Visual Studio\VC98\INCLUDE\algorithm(539) : Siehe Verweis auf Instantiierung der kompilierten Funktionsvorlage 'void __cdecl std::_Sort_0(class std::list<class std::basic_string<char,struct std::char_traits<char>,class
    std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > >::iterator,class std::list<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char>

    ,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > >::iterator,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *)'
    C:\Programme\Microsoft Visual Studio\VC98\INCLUDE\algorithm(546) : error C2784: 'class std::basic_string<_E,_Tr,_A> __cdecl std::operator +(const class std::basic_string<_E,_Tr,_A> &,const class std::basic_string<_E,_Tr,_A> &)' : Vorlagenargument fu
    er 'const class std::basic_string<_E,_Tr,_A> &' von 'class std::list<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::a
    llocator<char> > > >::iterator' konnte nicht hergeleitet werden
    **



  • Mal abgesehen davon, daß die Klammern unnötig sind ist diese Zeile vollkommen in Ordnung.



  • Wo kommt der Fehler? Hab meine Glasskugel leider daheim vergessen ;).

    mfg
    v R



  • Ja, macht die Gewohnheit wenn ich (*it)-> verwende.
    Der Fehler kommt, wie im letzten Post vermutet, aus der algorithm :D.

    Klasse:

    //#include <algorithm>
    

    Lasse ich diese Headerdatei außen vor, funktioniert alles. Nur leider brauche ich die sortfunktion 🙄 .

    Das kanns doch nicht sein oder? Könntet ihr das bei euch testen, hab ich einen Bug gefunden oder haben meine visual studio dateien einen Fehler?



  • Wie rufst du sort auf? Wie sind die Parameter? Musstest du selbst den op<
    implementieren? Wenn ja, hast du die beiden Parameter des op< als const
    deklariert?

    mfg
    v R



  • So verwende ich Sort:

    sort(stringListe.begin(),stringListe.end());

    Es wird also eine Liste voll mit strings sortiert.
    Ich habe keine eigenen Operatoren definiert / überladen.



  • Handelt sich ja um eine Liste, sry hab ich nicht dran gedacht. std::list hat
    seine eigene sort-Elementfunktion.

    mfg
    v R



  • Tatsache, danke für den Tipp.

    Aber ist das nun ein Fehler den man melden sollte oder nicht?



  • Sokleinmansiehtsiekaum schrieb:

    Tatsache, danke für den Tipp.

    Aber ist das nun ein Fehler den man melden sollte oder nicht?

    Ich hab mir mal die sort-Funktion angesehen. Es ist, IMHO, kein Fehler, da
    sort z. B. folgende Zeile hat:

    __introsort_loop(__first, __last, __lg(__last - __first) * 2);
    

    Hier meckert mein gcc, dass der op- (und an anderer Stelle der op+) nicht
    fuer __last definiert sei. Ich nehme mal an, dass haengt damit zusammen, dass
    der Speicherbereich von std::list nicht zusammenhaengend ist. Einfache
    Zeigerarithmetik ist hier nicht moeglich. Dazu muessten intern bei einem
    op+ aufruf entsprechend das naechste (bzw. n-te) Element gesucht und zurueck-
    gegeben werden.

    Ich denke mal, dass das auch Performencegruenden nicht gemacht worden ist,
    will mich da aber nicht festlegen.

    mfg
    v R



  • 😕 Jetzt rall ich das gerade nicht:

    Tatsache war doch das

    string Meinstring = *itString;

    nicht mehr ging sobald die algorithm includiert wurde.
    Und da Frage ich mich noch immer wieso ⚠



  • Schau dir nochmal deine gepostete Fehlermeldung an. Es geht hier um die sort
    Funktion, nicht um die Zuweisung.

    mfg
    v R



  • Aua alles klar danke sehr 🤡 !


Anmelden zum Antworten