dot hat geschrieben:Per Index auf Hashmaps oder Dachbodenschränke zugreifen ist sinnlos
Das glaube ich nicht, Tim. Für mich ist das eine fachliche Entscheidung, das zumindest tun zu können. Natürlich muss man sich über die Rahmenbedingungen (Performance, Konstanz in welchem Kontext, Reproduzierbarkeit) im Klaren sein.
Wiederholtes Iterieren und das damit assoziierbare Verknüpfen der Iterations-Ergebnisse mit numerischen Indices finde ich jetzt nicht so arg auseinander.
Wo in einer Menge (z.B. mit den Elementen "rot", "grün" und "blau") ist denn der "begin()"? Ist DAS fachlich eleganter/sinnvoller? Echt jetzt?
Für mich ist es nicht sinnlos, ist aber zugegeben ein Edge-Case und die sich ergebenden (willkürlichen) (Halb-)Ordnungen haben natürlich keine "allgemeingültige fachliche Eleganz", sind aber vorhanden, konstant, reproduzierbar und ich kann mich mit ihnen abfinden.
Wenn ich eine Hashmap benutze, dann ja, weil ich PRIMÄR schnelles Auflösen von Keys ind die Values brauche und nicht, weil ich den ganzen Tag per Index drüber iterieren oder per Index "random accessen" möchte (und wenn, dann nur in bestimmten Fällen). Sollte eigentlich klar sein...
Entstanden ist die Idee mit dem Index vor ein paar Jahren, wo ich beruflich mehr mit Perl und PHP unterwegs war. Ich glaube, in Javascript geht das auch. Weiß nicht mehr so genau...
Der Behauptung, dass das "sinnlos" ist, schließe ich mich daher nicht an. Ob es "gutes" C++ im Sinne der kaiserlichen Tradition ist, ist mir wieder egal, wenn es "valide und nicht mehrdeutig" ist.
Der Grund, warum ich dann doch nach "Best Practices" frage, ist, da ich verstehen möchte, warum manche "Verallgemeinerten Do's and Dont's" so sind, wie sie sind. Oft hat das praktische und komplexe Gründe, die eben in verallgemeinerten einfachen Regeln münden, um sie greifbarer zu machen.
Und so schaue ich eben mal genau nach, um eben am Ende besser abzuwägen, was die Konsequenzen sind, falls ich sie ignoriere... ;-) Trading eben.
dot hat geschrieben:exactly
Spiele Programmierer hat geschrieben:Für diesen Zweck würde ich dir eine einfache "array_view" Klasse nahelegen.
Darüber würde ich gerne mehr reden. Deswegen danke nochmal für den Hinweis zum Konzept "array_view" und dessen korrekte Benutzung...
Ich lasse mich da mal inspirieren.
Spiele Programmierer hat geschrieben:Das in solche virtuellen Schnittstellen zu zwängen, halte ich trotzdem für sehr unsinnig.
Wie gesagt - Danke für den Denkanstoß. Ich lasse mir mal durch den Kopf gehen...