vector struct push_back -> wie?



  • @ Akiko
    Okay, es scheint, als hätten grundsätzlich einen etwas anderen Bezug zu C++. Ich bin halt nicht so der Embedded- oder Kernelprogrammierer, darum kann ich die volle Standardbibliothek und oft auch Boost nutzen und muss nicht das Rad neu erfinden. Und persönlich habe ich die Erfahrung gemacht, dass Objeke im Container tendentiell eher schneller sind als Zeiger darauf, aber ich arbeite halt häufig mit kleinen Objekten und mit sich selten ändernden Containern. Klar, dass das nicht immer zutrifft. Für Ressourcen oder andere Heavyweight-Objekte benutze ich auch Zeiger (oder Vorallokierung), aber ich versuche manuelle Speicherverwaltung schnell mal wegzukapseln. Was die Mythen betrifft: Oft enthalten sie sogar ein Körnchen Wahrheit, aber meist wird eben nur die Hälfte davon gepredigt. Um beim Beispiel der virtuellen Funktionen zu bleiben: Diese sind zwar üblicherweise langsamer als normale Funktionen, doch das Verwenden eines anderen Dispatch-Mechanismus ( if , switch , Funktionszeiger) benötigt auch seine Zeit.

    Aber ansonsten scheint es, als hätte ich dich an ein paar Orten (z.B. mit RAII) falsch verstanden, sorry dafür. Ich bin froh, dass wir das ähnlich sehen. 🙂

    Und zum Text von yosefk: Ich glaube gern, dass er ein paar wahre Punkte anspricht. Aber viel davon ist Müll. Und dass er in jedem zweiten Punkt eine Anspielung darauf macht, wie schlecht C++ von Grund auf durchdacht ist und wie nahezu unmöglich es ist, sinnvoll damit zu programmieren, finde ich etwas schade. Das nimmt jegliche Ernsthaftigkeit und führt zu Ratereien, was der Autor wirklich für ein Problem hält und wo er nur trollen will.

    Ich sehe zum Beispiel das Problem mit Exceptions im Konstruktor nicht ganz. Was ist da das Argument? Die Standardbibliothek wirft wahrscheinlich sehr selten Exceptions, weil sie ein breites Anwendungsspektrum hat und die Verwendung von Exceptions nicht immer gerechtfertigt oder sogar möglich ist. Aber es gibt z.B. bei den Streams sogar eine Methode, um Exceptions einzuschalten. Warum Exceptions im Normalfall sehr sinnvoll sind, erklärt dieser Artikel sehr gut.


Anmelden zum Antworten