Navigation

    cpp-logo

    C++ Community

    • Registrieren
    • Anmelden
    • Suche
    • Kategorien
    • Aktuell
    • Tags
    • Beliebt
    • Gruppen
    1. Übersicht
    2. Beliebt
    Melde dich an, um einen Beitrag zu erstellen
    • Alle Kategorien
    • Ankündigungen
    •      Die Artikel
    • C++ (alle ISO-Standards)
    •      MFC
    •      VCL (C++ Builder)
    •      C++/CLI mit .NET
    •      Andere GUIs - Qt, GTK+, wxWidgets
    • Sonstige Programmiersprachen
    •      C (alle ISO-Standards)
    •      C# und .NET
    •      Java
    •      Assembler
    •      Webzeugs
    • Betriebssysteme
    •      WinAPI
    •      Linux/Unix
    •      Projekt: OS-Development
    •      DOS und Win32-Konsole (nur Lesen)
    • Weitere Fachbereiche
    •      Mathematik und Physik
    •      Spiele-/Grafikprogrammierung
    •      Datenbanken
    •      Compiler- und IDE-Forum
    •      Projekte
    • Jenseits der Programmierung
    •      Beruf und Ausbildung
    •      Stellenangebote
    •      Themen rund um die IT
    •      Gaming-Corner
    • Forentechnik
    • Archiv
    •      Das C++ Magazin
    •          Die Redaktion
    •          Die Autoren
    •          Allgemeines zum Magazin
    •          Archiv
    •      Organisation des Forumtreffens
    •      FAQs - Frequently Asked Questions
    •          FAQ - C (C89, C99 und C11)
    •          FAQ - Assembler
    •          FAQ - C++ (auch C++0x, C++11)
    •          FAQ - C++/CLI
    •          FAQ - C++ Builder (VCL/CLX)
    •          FAQ - C# und .NET
    •          FAQ - Compiler & IDEs
    •          FAQ - Datenbanken
    •          FAQ - DOS und Win32-Konsole
    •          FAQ - Grafik-/Spieleprogrammierung
    •          FAQ - GUIs
    •          FAQ - Java
    •          FAQ - Linux/Unix
    •          FAQ - Mathematik und Physik
    •          FAQ - MFC
    •          FAQ - Rund um die Programmierung
    •          FAQ - Sonstiges
    •          FAQ - Webzeugs
    •          FAQ - WinAPI
    •          FAQ - Forentechnik
    • Alle Themen
    • Neue Themen
    • Beobachtete Themen
    • Unbeantwortete Themen
    • Gesamter Zeitraum
    • Tag
    • Woche
    • Monat

    • Probleme mit std::sort, std::ranges::sort und eigenem < Operator
      C++ (alle ISO-Standards) • • Quiche Lorraine  

      18
      0
      Stimmen
      18
      Beiträge
      488
      Aufrufe

      *

      @Schlangenmensch sagte in Probleme mit std::sort, std::ranges::sort und eigenem < Operator: @john-0 Es gibt Fälle, bei denen Ordering und Gleichheit nicht wirklich passend sind. Wenn man sich auf diese Schiene begibt, dann öffnet man die Büchse der Pandora. Bisher war das in C++ so, dass operator<, operator> und operator== sich auf die gleiche Ordnungsrelation bezogen. Im Beispiel wurden ints benutzt, d.h. eine Teilmenge von Z\mathbb{Z}Z auf der eines keine Mehrdeutigkeit der Vergleichsoperatoren gibt. Wenn man hingegen Elemente aus C\mathbb{C}C hat, dann gibt es darauf nur den Test auf Gleichheit. (C,∥∥)C→R(\mathbb{C}, \lVert \, \rVert)\, \mathbb{C}\rightarrow\mathbb{R}(C,∥∥)C→R bildet nun einmal auf eine andere Zahlenmenge ab. std::complex hatte schon immer die Funktion abs, was die Anforderung einer Norm auf std::complex entspricht. Bei einer Programmiersprache stellt sich dann die Frage was soll dann der operator== vergleichen? Wir der Wert von Foo vergleichen, d.h. in diesem Fall wäre das eindeutig wegen der Teilmenge von Z\mathbb{Z}Z, oder werden die Objekte vergleichen? Da stellt sich dann die Frage, ob man die Gleichheit der Objekte testet oder deren Äquivalenz, d.h. sind die Objekte wirklich gleich d.h. dasselbe Objekt im Speicher, oder haben sie nur dieselben Werte?
    • A

      JS: Wie richtigerweise Strings nach int und float (mit begrenzten Nachkommastellen) konvertieren?
      Webzeugs • javascript int float runden • • Anon-81275  

      2
      0
      Stimmen
      2
      Beiträge
      80
      Aufrufe

      A

      In round_f war ein Fehler. Ich will ja keinen String haben, sondern ein float: function round_f(v, d = -1) { if (d <= 0) { return Number(v); } let factor = Math.pow(10, d); return Math.round(v * factor) / factor; } Des Weiteren muss man ein wenig aufpassen, mit Werten, die zwar falsy, jedoch nicht nullish sein dürfen: function round_i(v) { let num = parseInt(v, 10); return num == null ? 0 : num; } ... denn wir wollen ja ausschließen, dass num nach dem parseInt einen dieser Werte hat: null undefined NaN empty 0 false Hier hat auch schon jemand den Dampf abgelassen: https://stackoverflow.com/a/5515385/16293187