Unterschied int *pi = new int(100) int *pi = new int[100];



  • Tachyon schrieb:

    Ethon schrieb:

    Wenn ich beispielsweise ein Bild in den Speicher laden möchte, muss ich die paar MB ja auch nicht zuerst alle auf 0 setzen um sie direkt zu überschreiben.

    Da kannste den vector auch gleich beim Konstruieren befüllen.

    Wie würdest du das machen? istream_iteratoren um byteweise zu lesen/schreiben sind signifikant langsamer als wenn das OS dir direkt einem Rutsch den ganzen Dateiinhalt in den Speicher schreibt.



  • Ethon schrieb:

    Wenn ich beispielsweise ein Bild in den Speicher laden möchte, muss ich die paar MB ja auch nicht zuerst alle auf 0 setzen um sie direkt zu überschreiben.

    Ein unique_ptr<T[]> hat einen nicht messbaren Geschwindigkeitsvorteil gegenüber vector<T> , aber drei Nachteile:
    - er kennt sein Ende nicht ( end() , size() )
    - keine richtigen Iteratoren ( begin() , end() )
    - der "Iterator" ist bloß ein Zeiger



  • TyRoXx schrieb:

    - der "Iterator" ist bloß ein Zeiger

    Wo ist da das Problem?
    Theoretisch könnte man auch in vector

    typedef T* iterator;
    

    schreiben.
    Übrigens sind Punkt 1 und 2 praktisch identisch. Wenn man die Größe hat, kann man sich ein start-end Iteratorenpaar durch einfache Addition basteln.



  • Hacker schrieb:

    TyRoXx schrieb:

    - der "Iterator" ist bloß ein Zeiger

    Wo ist da das Problem?
    Theoretisch könnte man auch in vector

    typedef T* iterator;
    

    schreiben.

    Kann man, tut man aber nicht.
    - Ein eigener Iterator kann Debugging-Zeugs haben.

    - Zeigeriteratoren sind eben Zeiger, was ungewollte Effekte haben kann:

    typedef T *iterator;
    iterator i;
    cout << *i << "\n";
    cout << i << "\n"; //Ausgabe als void *
    


  • Hacker schrieb:

    Allokiere niemals selbst Speicher, wenn du es vermeiden kannst. Das führt manchmal zu schwer zu entdeckbaren Bugs, die du dann lange suchen darfst.

    Ich komme immer wieder darauf zurück:

    Back in the good old days-- the "Golden Era" of computers-- it was easy to separate the men from the boys (sometimes called "Real Men" and "Quiche Eaters" in the literature).

    Some programming tools NOT used by Real Programmers:
    Source language debuggers. Real Programmers can read core dumps.

    Compilers with array bounds checking. They stifle creativity, destroy most of the interesting uses for EQUIVALENCE, and make it impossible to modify the operating system code with negative subscripts. Worst of all, bounds checking is inefficient.

    http://www.pbm.com/~lindahl/real.programmers.html

    Dann rate mal wo ich dich einordne. :p



  • EOP schrieb:

    Dann rate mal wo ich dich einordne. :p

    Was genau war an meiner Aussage jetzt falsch? ➡ 😕
    Und wieso ist Kursiv-Schrift im BBCode tiefgestellt?



  • Hacker schrieb:

    Was genau war an meiner Aussage jetzt falsch? ➡ 😕

    Nichts. Sie kommt halt von einem Müslifresser 😉



  • Swordfish schrieb:

    Hacker schrieb:

    Was genau war an meiner Aussage jetzt falsch? ➡ 😕

    Nichts. Sie kommt halt von einem Müslifresser 😉

    Ich esse überhaupt kein Müsli 🕶
    Wenigstens habe ich keine Wahnvorstellungen und halte mich für einen Schwertfisch.

    Denn ich habe Wahnvorstellungen und halte mich für einen Hacker! 🤡



  • Hacker schrieb:

    Denn ich habe Wahnvorstellungen und halte mich für einen Hacker! 🤡

    Wieviele shells hast du auf irgendwelchen servern, du Hacker du?



  • EOP schrieb:

    Hacker schrieb:

    Denn ich habe Wahnvorstellungen und halte mich für einen Hacker! 🤡

    Wieviele shells hast du auf irgendwelchen servern, du Hacker du?

    Keinen.



  • Hacker schrieb:

    Keinen.

    Tausche gerne gegen Nominativ feminin.



  • Swordfish schrieb:

    Hacker schrieb:

    Keinen.

    Tausche gerne gegen Nominativ feminin.

    Akkusativ.



  • Goddammit, ja.



  • Wobei mich jetzt noch interessieren würde: Singular oder Plural?
    Bei "die Schells" ist es dann von der Form her nicht mehr unterscheidbar.

    Sagen wir es wäre "wie viele Traktoren hast du" - als Antwort dann "keine" oder "keinen"?



  • Beides ist möglich.


Anmelden zum Antworten