C++ Bibliotheken



  • Hallo Leute!

    Ich habe ein echtes Problem mit den C++ libraries. Wenn ich mir z.B. die Java Docu ansehe kann ich mir alle verfügbaren functionen von z.B. String ansehen.

    Auf die schnelle blicke ich in C++ nicht durch, kann mir jemand erklären was nun zum Umfang von C++ gehört und was z.B. von Microsoft im VStudio hinzugefügt wurde? Ich vermisse so eine schöne übersichtliche Beschreibung wie die JavaDoc.... Kennt wer seiten wo das dargestellt ist??

    herzlichn Dank
    l00P 🤡





  • hey danke für die schnelle Antwort..

    Also in ansi C++ gibt es nur STL und i/0 und string oder was?? Alles andere ist Anbieterspezifisch? Also auch db functionen oder?

    herzlichen dank
    l00P



  • ja



  • ...ist es auch richtig das man die stl nicht so gerne verwendet? Wenn nicht was dann z.B. unter VStudio??



  • Nö das ist nicht richtig.



  • man kann die STL nutzen, muss aber nicht

    in Version 6 vom Visual Studio fehlt bei der STL Implementation die hash map
    ist allerdings in Version 7(Vs.net) gefixt, also implementiert



  • lOOp schrieb:

    ...ist es auch richtig das man die stl nicht so gerne verwendet? Wenn nicht was dann z.B. unter VStudio??

    nein.
    man verwendet zum beispiel woimmer möglich std::ofstream und std::string statt CFile oder CString. und dann hat man auch keinen ärger mit der stl und verwendet die oft.



  • CFile und CString sind aber MFC Klassen 😉



  • man verwendet zum beispiel woimmer möglich std::ofstream und std::string statt CFile oder CString

    Dann kommt der Boese Projektleiter, und mag dein so tolles Windows Program auf Windows CE portiert haben ! 😃 😃 😃

    Es gibt keine allgemeingueltige Regel, wo man z.B. allgemein sagen kann STL >> MFC.

    Ne gute Sache ist, wenn man beides kann (aber nicht gleichzeitig in einem Project benutzt 😃 )

    - Die Containerklassen aus den speziellen Frameworks sind meist einfacher zu Haendeln, und besser auf das Framework abgestimmt.
    - STL ist portabler und Systemunabhaengiger ...
    - die MS Impl der STL macht unter multithreading Probleme ...
    - STL ist Schlank, die MFC fett :D, MFC nur wegen Containern benutzten, ist mit Kanonen auf Spatzen schiessen ...

    etc ...

    Also, wenn ne MFC App schreibst, hast Deine Seele eh schon MS verkauft, und eine Abwendung zum guten nicht so einfach moeglich. Also benutze ruhing CMap, CList, CArray etc. Die reichen fuer die meisten

    Wenn DU aber spezielle Sachen brauchst, wie Sets, Stacks, Queue ... Oder die Teile Deines Codes portabel halten willst, um sie auch in anderen Anwendungen mit anderen Compilern zu benutzen (Ausser Windows CE), nimm die STL. Benutzt du Multithreading, lad Dir die STL Implementation von SGI runter und bind die in VS ein.

    Oder gibts nu schon ne STL fuer Windows CE, bin ned so aufn laufenden ???

    Ciao ...



  • Hauptmann schrieb:

    man kann die STL nutzen, muss aber nicht

    in Version 6 vom Visual Studio fehlt bei der STL Implementation die hash map
    ist allerdings in Version 7(Vs.net) gefixt, also implementiert

    Echt? Dann ist Version 6 näher am Standard als Version 7. 🙂

    hash_map gehört AFAIK nicht zum C++ Standard. Es ist eine Erweiterung, die aber (AFAIK) nicht standardisiert ist.

    Siehe z.B.: http://www.sgi.com/tech/stl/FAQ.html



  • hmm
    hash tables sind aber was anderes als hash_maps

    wobei,
    der VC6 erfüllt den Standard zu etwa 80%
    VC7 bereits zu 90%

    nur der Comaeu Compiler erfüllt imho den Standard zu 100%(der kennt als einziger das export KEyword, und das ist laut Standard eigentlich vorgeschrieben) bzw. hat eine sinnvolle Implementation für das



  • Hauptmann schrieb:

    hash tables sind aber was anderes als hash_maps

    Erklär



  • ja
    den Unterscheid kann ich jetzt auch nicht so genau erklären -> heißt soviel wie, ich weis das nicht 😃

    zum Thema Multithread in VC:
    wenn man den Schalter /MT setzt, sollte man keine Probs haben



  • Mit anderen Worten, hash_map ist doch eine Hashtable-Implementation.



  • ...Danke für die ausf+hrlichen Erläuterungen Euch allen 🙂

    Seh schon klarer.
    Es gibt also verschiedene Implementierungen der stl, kommt eben darauf an welchen compiler man nimmt oder? Hab ich auch nicht gewußt.. 😞

    Danke , Gruß
    l00P



  • Den Hashtable brquchst du sowohl für ein Hash-Set, als auch für eine Hash-Map.

    Und soweit ich weiß hat es hash_map und hash_set, so wie sie beispielsweise in der SGi Implementation der STL zu finden sind, nur ganz knapp nichtmehr in den Standard geschaft, angeblich aus Zeitgründen. Aber HumeSikkins kennt sich mit sowas besser aus.



  • l00P schrieb:

    ...Danke für die ausf+hrlichen Erläuterungen Euch allen 🙂

    Seh schon klarer.
    Es gibt also verschiedene Implementierungen der stl, kommt eben darauf an welchen compiler man nimmt oder? Hab ich auch nicht gewußt.. 😞

    Danke , Gruß
    l00P

    Nein, nein. Es gibt eine STL, also eine Standardbibliothek, und diese ist - soweit vom Compiler unterstützt - Implementations und Betriebssystem unabhängig. Du kannst die gleichen Container, Algorithmen etc. mit jeder halbwegs neuen Entwicklungsumgebung benutzen.

    Zusätzlich zu der Standardbibliothek bieten aber Hersteller wie Microsoft etc. in ihren Entwicklungsumgebungen eigene Bibliotheken mit Containern etc. an. Diese unterscheiden sich natürlich von Bibliotheken anderer Hersteller.

    Ich würde dir aber empfehlen wo es geht die STL zu verwenden, da sie eben vollständig portabel - sowohl von Betriebssystem zu Betriebssystem als auch von Compiler zu Compiler - ist. Nicht zu vergessen, dass andere Programmierer dein Code u.U. besser verstehen, da die STL eben auch weit verbreitet ist. Wenn du spezial Bibliotheken benutzt, ist nicht immer garantiert, dass ein Anderer die Klassen, Methoden etc. kennt, und es besteht eher die Gefahr, dass dein Code für Andere schlechter verständlich wird.
    Was ich mir auch vorstellen kann, wo ich mir aber nicht sicher bin, ist, dass die STL allgemein auch die effizienteren Objekte bereitstellt. Einfach deswegen, weil nicht unnötige Sachen von MS oder ähnlichem hinzugepackt werden.



  • Alles klar, danke!

    Nicht so leicht zu kapieren am Anfang das ganze 🙂

    danke
    l00P


Anmelden zum Antworten