Könnt ihr den ganzen std::-Kram eigentlich auswendig?



  • Man kennt halt, was man benutzt. Bei mir vor allem STL (Container, Iteratorkonzept, wichtigste Algorithmen), Stream-Grundlagen, Smart-Pointer, Function/Bind, übliche C-Mathefunktionen. Mit vielen neu in C++11 dazugekommenen Teilen muss ich mich noch befassen.

    Exotische Sachen wie Valarray habe ich höchstens zum Experimentieren benutzt. Ab und zu stosse ich auch auf unbekannte Bibliotheksfeatures, ist manchmal noch interessant 🙂

    SeppJ schrieb:

    Du wirst erstaunt sein, wie klein die Standardbibliothek ist. Damit kriegt man nur dann ein Buch voll, wenn man viel schwafelt.

    ...oder die Sachen im Detail erklärt. Es gibt Bücher, die sich nur der STL oder nur den Streams widmen.


  • Mod

    Nexus schrieb:

    SeppJ schrieb:

    Du wirst erstaunt sein, wie klein die Standardbibliothek ist. Damit kriegt man nur dann ein Buch voll, wenn man viel schwafelt.

    ...oder die Sachen im Detail erklärt. Es gibt Bücher, die sich nur der STL oder nur den Streams widmen.

    Bei den Streams kann ich das ja noch verstehen, aber STL? Was gibt es denn dazu zu sagen, wofür eine Referenz nicht ausreicht?



  • theliquidwave schrieb:

    mich würde mal interessieren, ob ihr den ganzen Standardkram auswendig könnt?
    Damit meine ich Beispiele wie:

    1.) http://www.c-plusplus.net/forum/308225
    2.) http://stackoverflow.com/questions/2912520/read-file-contents-into-a-string-in-c
    3.) http://www.cplusplus.com/reference/algorithm/find_first_of/

    Und Allgemein der ganze Kram mit Iteratoren, Funktoren und so weiter.

    Jein. Vieles kennt man irgendwann. Normalerweise fängt es aber damit an, dass man weiß "da gibts was in der Richtung" und sich in einer Referenz die Lösungen und die genaue Syntax etc. zusammensucht. Sprich: Wenn ich ein Problem hab, überlege ich, ob/wie ich es mit der Standardbibliothek und/oder Boost lösen kann, bevor ich eine selbstgestrickte Lösung aus dem Hut zaubere. Bei der Standardbibliothek kann ich mir ziemlich sicher sein, dass kein Bug drin ist - bei selbstgestrickten Lösungen kann ich mir noch viel sicherer sein, dass ich irgendwann Bugs einbaue 😉

    Ich persönlich wäre niemals auf die Idee gekommen, die Lösung aus 2.) zu verwenden...

    Ich auch nicht - zu wenig mit streams gespielt bisher 😉

    Es würde mich aber wundern, wenn man in einem Buch alle Möglichkeiten kennenlernen würde.

    Jein. Ein Buch reicht aus, um alle Einzelfeatures zu beschreiben. Die Dinger miteinander zu kombinieren wie in 2.) ist was anderes, da gibts so viele kombinatorische Möglichkeiten, dass sie unmöglich in lesbarer Form auf Papier festgehalten werden könnten. Da hilft nur Erfahrung und Kreativität 😉



  • Okay, danke!



  • SeppJ schrieb:

    Bei den Streams kann ich das ja noch verstehen, aber STL? Was gibt es denn dazu zu sagen, wofür eine Referenz nicht ausreicht?

    Es gibt ja unter anderem das Buch Effective STL von Scott Meyers. Ich kenne es nicht, nehme aber an, es wird auf viele Anwendungsszenarien und "Best Practices" eingegangen.



  • Ja, ich hab ebenfalls schon viel auswendig gelernt, das kommt von selbst wenn man viele Funktionen immer wieder nutzt.

    Im Vergleich zum JDK soll die C++-Standardbibliothek klein sein.

    Ebenfalls nie std::valarray oder Konsorten benutzt, muss ich aber umbedingt noch nachholen.



  • Ich finde das wichtigste ist ein gutes Gefühl dafür zu haben was es schon fertig in der Std.Lib geben könnte und was eher nicht.
    Die genauen Namen/Syntax etc. muss man nicht auswendig wissen.
    Die Teile die man oft braucht merkt man sich irgendwann von selbst, und die Teile die man nicht so oft braucht... braucht man eh nicht so oft 🙂



  • Nexus schrieb:

    SeppJ schrieb:

    Bei den Streams kann ich das ja noch verstehen, aber STL? Was gibt es denn dazu zu sagen, wofür eine Referenz nicht ausreicht?

    Es gibt ja unter anderem das Buch Effective STL von Scott Meyers. Ich kenne es nicht, nehme aber an, es wird auf viele Anwendungsszenarien und "Best Practices" eingegangen.

    Und C++ Standard Library Tutorial and Reference 🤡 (Jetzt sogar mit C++11)



  • SeppJ schrieb:

    Bei den Streams kann ich das ja noch verstehen, aber STL? Was gibt es denn dazu zu sagen, wofür eine Referenz nicht ausreicht?

    Naja... oft ist es schon sehr nett wenn man nicht nur erklärt bekommt was etwas genau macht, sondern auch wofür es überhaupt gut ist. Bzw. wie man es effektiv anwenden kann.



  • theliquidwave schrieb:

    Damit meine ich Beispiele wie:
    (...)
    2.) http://stackoverflow.com/questions/2912520/read-file-contents-into-a-string-in-c
    (...)
    Ich persönlich wäre niemals auf die Idee gekommen, die Lösung aus 2.) zu verwenden...

    Die "Lösung" aus 2) ist meiner Meinung nach auch alles andere als optimal.
    Man kann es so machen.
    Man kann aber genau so gut auch 3-4 Zeilen mehr Code schreiben, und dafür ein Programm haben das (u.U. viel) schneller läuft.


Anmelden zum Antworten