Standard Template Library



  • Hi. Habe ein paar fragen zur STL.

    1. ANSI/ISO C++ ist ja die Programmiersprache. STL ist ja ne Bibliothek, also ne ansammlung von funktionen (cout etc.), die glaub jedem compiler mitgeliefert wird. meine frage ist nun, gibt es noch weitere Lib's oder ist STL die einzige die "dazu" gehört?

    2. Von wem ist den nun die STL? ist das hier die Originale STL? http://www.sgi.com/tech/stl/download.html

    3. Lohnt es sich die STL die dem Compiler Visual C++ beiliegt, zu "updaten"? Und das gleiche für den Borland C++ Builder? Die STL die da beiliegt ist ja sicher schon eingestaubt nehme ich mal an.

    Das war es glaub. Vorerst jedenfalls 😃



  • Hallo!

    Mit dem BCB6 wird z.B. eine erweiterte Version der STL, das sogenannte STLPort, mitgeliefert. Diese erweiterte STLVariante enthält grossteils durch SGI erarbeitete Zusätze, wie z.B. Hashklassen, die man ja im bisherigen Standard nicht finden kann. Angeblich soll das STLPort in den neuen C++Standard integriert werden.

    Grüße,
    TS++



  • fritzy fratzy schrieb:

    1. ANSI/ISO C++ ist ja die Programmiersprache. STL ist ja ne Bibliothek, also ne ansammlung von funktionen (cout etc.), die glaub jedem compiler mitgeliefert wird. meine frage ist nun, gibt es noch weitere Lib's oder ist STL die einzige die "dazu" gehört?

    STL ist das was SGI damals entwickelte. Die STL wurde groesstenteils in die C++ Standard Library aufgenommen. Faelschlicherweise nennt man diesen Teil immer noch STL, obwohl das nicht ganz korrekt ist.

    1. Von wem ist den nun die STL? ist das hier die Originale STL? http://www.sgi.com/tech/stl/download.html

    Ja, die original STL ist von SGI. Aber es gibt viele freie und komerzielle C++ Standard Libraries (und auch einige, die nur den STL-Part der C++ Standard Library bereitstellen).

    1. Lohnt es sich die STL die dem Compiler Visual C++ beiliegt, zu "updaten"? Und das gleiche für den Borland C++ Builder? Die STL die da beiliegt ist ja sicher schon eingestaubt nehme ich mal an.

    Kommt auf die Version an.
    Bei VC++6 ist ein update sehr wichtig. zB durch den STLFix (auf bens.c-plusplus.info zu finden) oder gleich eine ganz neue Library wie zB STLPort.
    Beim VC++7 ist das nicht so wichtig. da ist es eigentlich nicht noetig (aber dennoch moeglich) STLPort zu verwenden.
    Beim VC++7.1 denke ich, ist kein update erforderlich oder sinnvoll.

    Beim Borland C++ Builder 6 liegt STLPort bei. Insofern gibts da nicht viel zu tun 😉
    Bei aelteren Versionen kann es uU schon sinnvoll sein eine neue Library zu installieren



  • Die STL wurde groesstenteils in die C++ Standard Library aufgenommen

    hm? ich dachte immer STL == Standard Template Library == C++ Standard Library
    also nicht? was ist denn nun C++ Standard Library?



  • fritzy fratzy schrieb:

    was ist denn nun C++ Standard Library?

    alles was im C++ Standard steht.
    STL ist (im Volksmund) ein Teil der C++ Standard Library.

    jeder sagt dazu STL, ich wollte nur mal hinweisen, dass das eigentlich falsch ist 😉



  • hehe 😉

    alles was im C++ Standard steht.

    also z.B. iostream, string, etc.?



  • tach...

    würd mich jetzt schon wunder nehmen, denn dann würde ich doch gleich ein komplettes "C++ Standard Library" update vornehmen. was brauch ich dazu alles?

    ** fritzy fratzy **



  • hab mich ein wenig schlau gemacht. also die C++ Standard library besteht aus drei gruppen, ist das korrekt?

    - C standard library
    - iostream library
    - STL (Standard Template Library)

    nun, wo ich die neuste STL bekomme weis ich ja nun 🙂
    wie schauts mit den restlichen zwei sachen aus?



  • fritzy fratzy schrieb:

    hab mich ein wenig schlau gemacht. also die C++ Standard library besteht aus drei gruppen, ist das korrekt?

    - C standard library
    - iostream library
    - STL (Standard Template Library)

    nein, ist nicht korrekt.
    ich sagte doch, dass es die STL wie wir sie nennen garnicht gibt.

    aber wenn du es so nennen willst, meinetwegen.
    jetzt musst du mir nur noch ganz fix erklaeren wo zB <typeinfo>, <limits> oder <cstdlib> faellt 😉



  • also in meiner vorstellung gibt es nur c-lib und "STL". limits und typeinfo und iostream gehoeren zu STL, cstdlib zu c-lib(erkennt man am fuehrenden c).



  • Weil istream jetzt basic_istream<> heißt oder wie?



  • ich weiß nicht, ob ich typeinfo wirklich zur STL zählen würde. Es gehört ja irgendwie zu typeid und das ist Teil der Sprache.



  • [quote="Shade Of Mine]
    Beim VC++7.1 denke ich, ist kein update erforderlich oder sinnvoll.
    [/quote]

    Die Stream-Bibliothek von STLPort ist auf meinem System (und auf allen von mir getesteten Systemen) fast doppelt so schnell wie die mitgelieferte...

    Wenn man also davon exzessiven gebraucht macht so ist das Update mit Sicherheit eine Überlegung wert.



  • Anonymous schrieb:

    Die Stream-Bibliothek von STLPort ist auf meinem System (und auf allen von mir getesteten Systemen) fast doppelt so schnell wie die mitgelieferte...

    Und wie sieht es bei den Container-Klassen aus?



  • Und vor allem, welche Version haelt sich an den Standard, bzw. was ist der standard ?

    Stolperfalle SGI Port -> warum gibt ein erase(xyz)einer Containerklasse (list,set, map) da keinen iterator (auf das erste element nach dem geloeschten Anteil) zurueck, so wie es in dem Lehrbuch steht ? Oder sind meine buecher Falsch ? (MS Implementation macht es )

    Stolperfalle MS Impl -> Threadsicherheit ... gibt teilweise Probleme bei mehreren Threads wenn sie auf COntainerklassen zugreifen. Verhalten sich dann nicht so wie erwartet .... Ist auch nicht die schnellste Implementation

    Ciao ...



  • Shade Of Mine schrieb:

    nein, ist nicht korrekt.
    ich sagte doch, dass es die STL wie wir sie nennen garnicht gibt.

    hmm wie heisst es dann? komm jetzt nicht mehr ganz nach. also was genau bildet den nun die "C++ Standard Library" ?

    und nochwas: was muss ich jetzt alles haben um ein komplettes update zu machen? bitte links und so 🙂



  • was zur 'STL' gehoert ist recht leicht definiert:
    http://www.sgi.com/tech/stl/download.html

    das ist die STL

    weder IOStream noch typeinfo, noch sonstiges gehoert da dazu.

    Die C++ Standard Library kann man nunmal nicht sinnvoll aus kleinen einzelteilen zusammen setzen. Denn die C++ Standard Library ist genau das, was als C++ Standard Library im C++ Standard definiert wurde.

    Sinnvoll updaten laesst sich eigentlich nur mit STLPort oder der SGI STL.

    btw: ich wuerde lieber den Compiler updaten als nur einen Teil der Library.


Anmelden zum Antworten