vector



  • Indem du mit dem Maximalwert vergleichst.
    Den bekommst du standardkonform mit

    #include <limits>
    long int max = std::numeric_limits<long int>().max();
    


  • Ah ja!!! Hab ja ganz vergessen, dass ich die Vergleichsoperatoren schon überladen habe!!! Danke!!!!!! 🙂



  • Sry nochmal. In meinem C++-Buch steht für die limits folgendes drin:

    #include <climits>
    long int max = LONG_MAX;
    

    Ist meins jetzt veraltet, oder was ist das von dir??? Gibt es für C++ die
    Bibliothek limits, also ohne c???

    (Falls das neuer ist, bitte ich um eine Erklärung. Schaut nach einer Klasse
    mit Funktionen aus, die den Maximalwert usw. zurückgibt)



  • Ja, limits ist ein C++-Header und enthält das Template numeric_limits, welches für alle Standardtypen spezialisiert ist und solche Dinge wie min(), max(), digits usw. anbietet, als Grenzen für die Standardtypen.

    "Neu" ist das übrigens nicht, sondern Bestandteil von ISO C++ '98.

    Die Syntax ist allerdings

    #include <limits>
    
    const long max = std::numeric_limits<long>::max()
    


  • Cool, komisch, das das in meinem Buch nicht drin steht.



  • D schrieb:

    #include <climits>
    

    Ein "c" am Anfang des Headernamens der nicht Teil des eigentlichen Namens (Hier: "limits") ist, deutet darauf, das der Header aus der C Standardbibliothek stammt, und nicht Teil der eigentlichen C++ Standardbibliothek ist.

    2 Vermutungen:
    1. Dein Buch könnte veraltet sein
    2. Die Schreiber haben in dem Fall sich im Header vergriffen

    cu André



  • gaanz vorsichtige Fragen:
    - führt dein "C++-Buch" auch ein simples "C" im namen?
    - kommen im C++-Teil des Buches Funktionen wie printf() vor?
    - wird im C++-Teil des Buches zuerst der Umgang mit const char*, strcpy() und ähnlichem gelehrt an Stelle von std::string?

    Solltest du gerade die letzten beiden Fragen mit einem "ja" beantworten können, dann wird es Zeit, sich ein neues C++-Buch zu besorgen (kein "C/C++-Buch") und das andere je nach Alter an ein Museum ("Guck mal Opa, die kannten damals noch keine Standardbibliothek") oder an den Autor ("Opa, kennst du denn keine Standardbibliothek?") zu schicken...



  • C++ von A bis Z - Das umfassende Handbuch von Jürgen Wolf 1. Auflage (2006)



  • Und dann noch climits verwenden? Ich hab mir mal das Inhaltsverzeichnis des Buches angeschaut, daraus geht schon hervor, dass der Autor zuerst die POD-Typen einführt, dann C-Strings und deren Handhabe beschreibt und erst im vierten Kapitel auf Objektorientierung zu sprechen kommt. Vorher wurden bereits Casts eingeführt (erst C-casts, dann C++-casts) Erst in Kapitel 7 (Nach 5: STL und 6: Exceptions) wird auf szd::string eingegangen. Also wieder eines der Bücher, die während der eigentlichen Lernphase mit const char*s um sich werfen und erst nach Abschluss der Grundlagen (sogar viel später) erwähnen, dass es eine String-Klasse gibt und die ganzen Fehler, die man mit C-Strings in den Wochen davor gemacht hat, hätten vermieden werden können. Traurig.



  • Es ist ein Galileo-Computing-Buch. Was erwartet ihr?


Anmelden zum Antworten