Minimum



  • Xin schrieb:

    Ich las die Fragestellung und was danach kam, sieht mir eher nach deutlichen STL-Verliebtheit, als einer sinnvollen Problemlösung aus. Ich denke, dass liest sich auch quer da wunderbar raus.

    Haha, und das von jemandem der so for -verliebt ist wie du? Du hättest auch ganz einfach if & goto verwenden können...

    (Die STL ist Teil des C++-Standards. Jemandem der darauf hinweist dass es in der Standardbibliothek einen dem Problem angemessenen Algorithmus gibt STL-Verliebtheit vorzuwerfen ist äußerst lächerlich.)

    Xin schrieb:

    In dem Sinne programmiere es selbst, es wird vermutlich kürzer, weniger aufwendig und schneller sein, als jegliche STL-Lösung.

    Okay, mal vergleichen. Schneller als std::min_element? Ne, das macht ja das Gleiche. Kürzer? Ne, std::min_element ist kürzer. Aufwendiger... naja, std::min_element ist sogar weniger zu tippen.

    std::min_element vs superschnelle_einfache_schleife: 3 : 0

    Das beurteilst Du so? Okay, damit kann ich gut leben und mir gedanklich eine kleine Notiz für unter 'Jester' anlegen, irgendwie scheint mir da sowieso schonwas aus früheren Threads zu klingeln...[/quote]

    Es wäre weniger albern wenn du statt dieser ominösen Andeutung + Pseudodrohung einfach auf sein Argument eingehen würdest.

    Xin schrieb:

    Aber deklariere derartiges doch bitte als Deine persönliche Meinung, denn mehr stellt es nicht dar.

    Ich sehe nicht dass du deine Meinung als solche deklariert hast. (Und wozu auch, das ist in aller Regel nicht nötig, der Unterschied zwischen "1+1=2" und "mir gefällt die 3" ist offensichtlich.)

    Nicht zu vergessen dass nicht alle Meinungen gleich viel Wert sind.

    Xin schrieb:

    Abgesehen davon, kann es nicht schaden, wenn sich nach 7 Seiten mal jemand um das eigentliche Problem bemüht.
    Schön, dass Deine Reaktion derart freundlich formuliert ist, nur weil mein Ansatz ein anderer ist als der von Dir bevorzugte.

    🙄

    Xin schrieb:

    Aus der Anfrage las ich nämlich nicht, dass die Daten entsprechend eines STL-Templates iterierbar sind. Wenn er das zusätzlich noch entwickeln muss, dann bröckelt Deine kompetente Argumentation angefangen von 'weniger zu tippen' von hinten weg.

    Ähm, LOL?

    Xin schrieb:

    Für den Fall, dass er tatsächlich Anfänger ist, könnte die STL-Lösung ihn damit vollends überfordern und außer seine Zeit zu verschwenden keinen weiteren Nutzen bringen.

    Es geht hier nicht um hochgradig obskure Metaprogrammierung sondern schlicht um simples Standard C++. Kann es sein dass du dich damit einfach selber nicht auskennst und deswegen dagegen sträubst?

    Xin schrieb:

    Jester schrieb:

    Aber letzlich ging es im Rest des Threads auch darum nicht. Fall Dich interessiert worum es stattdessen ging kannste ja einfach mal nachlesen.

    Worum es in diesem Thread geht, steht in der Regel im ersten Posting. Um das Minimum diverser Werte. Wie mir scheint, scheint das bisher kaum beachtet worden zu sein.

    Folgt man deiner Argumentation dürfte kein Thread aus mehr als 2 Beiträgen bestehen, redundante Postings die sich dem OP anschließen ausgenommen.

    Xin schrieb:

    r0nny schrieb:

    btw - werden die werte von irgendwo eingelesen? dann ist es evtl schlauer eine variable mitzuführen, die das aktuelle minimum enthält, anstatt sich zig seiten um irgendwelche sinnfrei verwendeten algos zu streiten

    Das stellt für mich ein gutes Beispiel einer sinnvollen, möglichen Problemlösung dar - daher meine Frage, wie die Daten überhaupt vorliegen.

    Hättest du den Thread gelesen wäre dir klar dass dieser Punkt auch schon angesprochen wurde.



  • Hallo finix.

    Erstaunlich, dass Du mir eine for-Verliebtheit nach einer einzigen for-Schleife unterstellst... ich muss Dich enttäuschen, im Schnitt bin ich eher im while-Wahn denn for-verliebt. 🙂

    Um Dein Weltbild jedoch nicht ganz zu zerstören: ich gehöre tatsächlich zu den Leuten, die in goto eine sinnvolle C/C++ Anweisung sehen. Vielleicht nicht in dem von Dir genannten Zusammenhang, aber dennoch der Mehrheit der C/C++-Gläubigen zum Widerspruch.

    finix schrieb:

    Xin schrieb:

    Für den Fall, dass er tatsächlich Anfänger ist, könnte die STL-Lösung ihn damit vollends überfordern und außer seine Zeit zu verschwenden keinen weiteren Nutzen bringen.

    Es geht hier nicht um hochgradig obskure Metaprogrammierung sondern schlicht um simples Standard C++. Kann es sein dass du dich damit einfach selber nicht auskennst und deswegen dagegen sträubst?

    Wer sich bemüht, eine Frage zu tippen, die hoffentlich auch für Dich aufwendiger ist, als eine Minimumfunktion zu implementieren, lernt C++ vermutlich zur Zeit. Das heißt, es ist kein Standard C++ vorhanden. In dem Fall liegt die Definition von 'simples Standard C++' sicherlich anders, als es vielleicht Deine Vorstellung ist.

    Ich meine, dass es durchaus sinnvoll ist, den Wissenstand des Fragenden zu berücksichtigen, damit er die Problemlösung auch umsetzen kann. Meinst Du nicht?

    Weiterhin meine ich, dass es immernoch weniger aufwendig ist, eine Minimum-Funktion zu schreiben, als für nicht STL-iterierbare Werte einen Iterator.
    Der notwendige Aufwand ist meiner Meinung nach ebenfalls beachtenswert oder meinst Du nicht?

    finix schrieb:

    Xin schrieb:

    Worum es in diesem Thread geht, steht in der Regel im ersten Posting. Um das Minimum diverser Werte. Wie mir scheint, scheint das bisher kaum beachtet worden zu sein.

    Folgt man deiner Argumentation dürfte kein Thread aus mehr als 2 Beiträgen bestehen, redundante Postings die sich dem OP anschließen ausgenommen.

    Meine Argumentation ist, dem Fragenden erst zu helfen und sich danach bei Bedarf dann an der STL aufzugeilen.

    Bisher sehe ich jedenfalls nicht, ob der Fragende sein Problem gelöst hat.
    Darum geht es doch in diesem Forum und in diesem Thread, dachte ich!?
    Vielleicht gibt es da auch gleichwertige andere Meinungen und ich muss meine mal überdenken.



  • Xin schrieb:

    Erstaunlich, dass Du mir eine for-Verliebtheit nach einer einzigen for-Schleife unterstellst... ich muss Dich enttäuschen, im Schnitt bin ich eher im while-Wahn denn for-verliebt. 🙂

    Um Dein Weltbild jedoch nicht ganz zu zerstören: ich gehöre tatsächlich zu den Leuten, die in goto eine sinnvolle C/C++ Anweisung sehen. Vielleicht nicht in dem von Dir genannten Zusammenhang, aber dennoch der Mehrheit der C/C++-Gläubigen zum Widerspruch.

    Erstaunlich dass du anderen STL-Verliebtheit vorwirfst nach einem einzigen Algorithmus....
    Weniger erstaunlich dass du komplett am Punkt vorbei geantwortet hast.

    Die Unterstellung im zweiten Absatz entbehrt nicht nur jeglicher Grundlage, sondern hat noch weniger Bezug zum eigentlichen Punkt.

    Xin schrieb:

    Wer sich bemüht, eine Frage zu tippen, die hoffentlich auch für Dich aufwendiger ist, als eine Minimumfunktion zu implementieren, lernt C++ vermutlich zur Zeit. Das heißt, es ist kein Standard C++ vorhanden. In dem Fall liegt die Definition von 'simples Standard C++' sicherlich anders, als es vielleicht Deine Vorstellung ist.

    Sorry, kompletter Semantik-Crash. Kannst du das nochmal neu formulieren?

    Xin schrieb:

    Ich meine, dass es durchaus sinnvoll ist, den Wissenstand des Fragenden zu berücksichtigen, damit er die Problemlösung auch umsetzen kann. Meinst Du nicht?

    Ja, das ist genau mein Punkt. Standard-Container & -Algorithmen sind keine Atomphysik, daher ist Wissensstand |= generische Standardlösung durchaus erstrebenswert.

    Xin schrieb:

    Weiterhin meine ich, dass es immernoch weniger aufwendig ist, eine Minimum-Funktion zu schreiben, als für nicht STL-iterierbare Werte einen Iterator.
    Der notwendige Aufwand ist meiner Meinung nach ebenfalls beachtenswert oder meinst Du nicht?

    Hm. Sollte das nicht der Fall sein liegt aller Wahrscheinlichkeit nach ein Designfehler vor, der behoben werden sollte.
    Vor allem geht dein Code geht vom Vorhandensein eines op[] aus, was eine wesentlich größere Einschränkung darstellt.

    Xin schrieb:

    Meine Argumentation ist, dem Fragenden erst zu helfen und sich danach bei Bedarf dann an der STL aufzugeilen.

    Du magst die Standardbibliothek nicht, was? Aber dein Argument kann man genauso gut (und wesentlich sinnvoller, IMAO) umdrehen: man sollte dem Fragenden zunächst die angemessene Lösung anbieten und sich dann erst, auf ausdrücklichen Wunsch, an NIH-Konstrukten aufgeilen.

    Xin schrieb:

    Bisher sehe ich jedenfalls nicht, ob der Fragende sein Problem gelöst hat.
    Darum geht es doch in diesem Forum und in diesem Thread, dachte ich!?
    Vielleicht gibt es da auch gleichwertige andere Meinungen und ich muss meine mal überdenken.

    Dass der OP sich nicht zum Stand seines Problems geäußert hat legt eher die Vermutung nahe dass er es bereits lösen konnte.

    Und vielleicht solltest du dich mit dem Gedanken anfreunden dass es ggf nicht nur gleichwertige sondern auch höherwertige Meinungen neben deiner gibt. 😉



  • Hallo finix... :-\

    finix schrieb:

    Xin schrieb:

    Wer sich bemüht, eine Frage zu tippen, die hoffentlich auch für Dich aufwendiger ist, als eine Minimumfunktion zu implementieren, lernt C++ vermutlich zur Zeit. Das heißt, es ist kein Standard C++ vorhanden. In dem Fall liegt die Definition von 'simples Standard C++' sicherlich anders, als es vielleicht Deine Vorstellung ist.

    Sorry, kompletter Semantik-Crash. Kannst du das nochmal neu formulieren?

    Sollte Dein Deutsch-Parser hier Fehler werfen, wird es Zeit für ein Update. Ein Stack-Overflow ist bei den paar Worten jedenfalls definitiv ein Bug.

    Aus Benutzersicht scheint es mir klüger zu sein, mich zukünftig anderen Interpretern zuzuwenden.

    finix schrieb:

    Standard-Container & -Algorithmen sind keine Atomphysik, daher ist Wissensstand |= generische Standardlösung durchaus erstrebenswert.

    Hier stimme ich mit Dir überein. Sollte Dein Parser jedoch die Semantik des Ursprungsposting korrekt wiedergeben können, so wirst Du feststellen, dass er nicht gefragt hat, was er zukünftig lernen soll, sondern wie er jetzt ein spezielles Problem lösen soll. Hier ist eine zeitliche Komponente gegeben, die u.U. der Verwendung der STL widerspricht.

    finix schrieb:

    Xin schrieb:

    Weiterhin meine ich, dass es immernoch weniger aufwendig ist, eine Minimum-Funktion zu schreiben, als für nicht STL-iterierbare Werte einen Iterator.
    Der notwendige Aufwand ist meiner Meinung nach ebenfalls beachtenswert oder meinst Du nicht?

    Hm. Sollte das nicht der Fall sein liegt aller Wahrscheinlichkeit nach ein Designfehler vor, der behoben werden sollte.

    Es ist nicht automatisch ein Designfehler, wenn man nicht die STL verwendet.

    Vorsichtshalber der Hinweis für Deinen semantikcrashgeprüften Deutsch-Parser: (!Designfehler && !STL) != (Designfehler && STL)

    finix schrieb:

    Vor allem geht dein Code geht vom Vorhandensein eines op[] aus, was eine wesentlich größere Einschränkung darstellt.

    Du möchtest mir jetzt nicht andeuten, dass Du nicht in der Lage bist, die Semantik eines Codes zu lesen, sondern ausschließlich die Syntax zu prüfen?

    Hmm... ich möchte dazu anfügen, dass ich die Frage eigentlich ernst meinte, als ich sie schrieb. Mir ging erst beim Kontrolllesen auf, dass sie doch rhetorischer Natur zu sein scheint.

    Xin schrieb:

    Du magst die Standardbibliothek nicht, was?

    False. Weiterhin kannst Du diese Frage wegoptimieren, denn sie wird grundlose gestellt.

    Ich sehe beim Programmieren auch Fragen, auf die die STL nicht die richtige Antwort ist.

    Xin schrieb:

    Und vielleicht solltest du dich mit dem Gedanken anfreunden dass es ggf nicht nur gleichwertige sondern auch höherwertige Meinungen neben deiner gibt. 😉

    Meinst Du, Dein Deutschparser kann das Attribut 'arrogant' parsen und semantisch mit Deiner Instanz verknüpfen? 😉

    Meiner bescheidenen Meinung nach, ist der Quelltext mit Deinem Namen jedenfalls hier am Ende. Weiterführende Textzeilen erscheinen meinem Parser als Kommentar.
    Schönen Abend noch.



  • Xin schrieb:

    Hallo finix... :-\

    Hallo Xin! 🙄

    Ich spar's mir einfach mal deinen Post auseinander zu nehmen.

    Aber lass dir gesagt sein dass deine generelle Einstellung nicht falsch liegen zu können wesentlich arroganter erscheint als meine nicht immer allzu verblümter Ausdrucksweise. IMAO, natürlich.

    Wenn du wenigstens für deinen Standpunkt argumentieren könntest...

    p.s. Colorless green ideas sleep furiously



  • @Xin: Bitte lies doch den Thread einfach. Oder laß es. Dann behaupte aber auch nicht Du hättest da irgendwas rausgelesen.

    Du darfst hier natürlich gerne Deine Schleife präsentieren. Vielleicht solltest Du Dich aber nicht zu sehr drüber aufregen, wenn ich Deine Argumentation warum die so viel toller ist, zerlege.

    Es kann natürlich durchaus sein, daß Du Dich da an frühere Threads erinnert fühlst. Kommt öfter vor, daß ich widerspreche wenn jemand Mist erzählt. Du hast übrigens keine Deiner Aussagen mit "Das aber nur meine Meinung" kenntlich gemacht. Warum muß ich das tun?

    edit: Falls Du den Thread doch noch liest wirst Du bemerken, daß ich die ganze Zeit für entweder die Schleife oder std::min_element plädiert habe.



  • Jester schrieb:

    @Xin: Du darfst hier natürlich gerne Deine Schleife präsentieren. Vielleicht solltest Du Dich aber nicht zu sehr drüber aufregen, wenn ich Deine Argumentation warum die so viel toller ist, zerlege.

    edit: Falls Du den Thread doch noch liest wirst Du bemerken, daß ich die ganze Zeit für entweder die Schleife oder std::min_element plädiert habe.

    Ich hab' ihn gelesen und auch tatsächlich den Satz gefunden, der auf eine Schleife deutet.

    Wieso argumentierst Du gegen die Schleife, wenn Du zuvor noch dafür argumentiert hast?
    Und seien wir ehrlich, wirklich argumentativ war diese 'Argumentation '3:0' nicht. Das war mehr 'Wir hauen mal mi'm Hammer drauf, dann ist hoffentlich Ruhe.'.

    Was ich in dem Thread quer gelesen habe, gab' mir einen guten Überblick. Verpasst hatte ich lediglich, dass die Daten über die Standardeingabe kommen.

    Der Fragende ist Anfänger, ich weiß nicht, ob ihm der Stoß ins kalte STL-Wasser wirklich geholfen hat. Nach dem Thread sieht er den Wald vor lauter Bäumen nicht mehr.
    Wenn er Pech hat, hätte er nur eine Schleife machen müssen und einfach immer vergleichen, ob die aktuelle Eingabe kleiner als die bisher kleinste Eingabe war?

    Jester schrieb:

    Es kann natürlich durchaus sein, daß Du Dich da an frühere Threads erinnert fühlst. Kommt öfter vor, daß ich widerspreche wenn jemand Mist erzählt.

    Oha, schwerer Seitenhieb. Netter Versuch.

    Jester schrieb:

    Du hast übrigens keine Deiner Aussagen mit "Das aber nur meine Meinung" kenntlich gemacht. Warum muß ich das tun?

    Müssen muss keiner was. An manchen Stellen wär's ehrlicher, wahrer.

    Ich bin immer wieder erstaunt, wieviele Wahrheiten in der Informatik rumgeistern, die nichts mehr als häufig genug zitierte Meinungen sind. Wenn man will kann man sie sogar beweisen, vieles steht im Informatik-Duden schwarz auf weiß. Und für verschiedene Ansichten braucht man sich sogar nur einen einzigen Duden zu kaufen.

    Im Gegensatz zu finix Behauptung, halte ich meine Überzeugung für eine begründete Möglichkeit, aber nicht für die einzig machbare.
    Wenn ich mir angucke, wie alt das Topic schon ist, spielt das aber vermutlich eh keine Rolle mehr.



  • Xin schrieb:

    Wieso argumentierst Du gegen die Schleife, wenn Du zuvor noch dafür argumentiert hast?

    Zum einen halte ich die stl-Lösung tatsächlich für besser. Zum anderen hat mich auch dieses "Nachdem jetzt hier keiner das vernünftig lösen konnte und alle nur Mist erzählt haben, zeigt euch der Onkel Xin jetzt mal, wie man's richtig macht"-Gelaber ein bißchen angenervt.

    Und seien wir ehrlich, wirklich argumentativ war diese 'Argumentation '3:0' nicht. Das war mehr 'Wir hauen mal mi'm Hammer drauf, dann ist hoffentlich Ruhe.'.

    Zumindest schneller und kürzer sind (auch objektiv gesehen) widerlegt. Über einfacher kann man sicherlich noch streiten. Aber hey, warum sollte ich 2:1 spielen, wenn Du mich vielleicht auch mit 3:0 davonkommen läßt. 😃

    Was ich in dem Thread quer gelesen habe, gab' mir einen guten Überblick. Verpasst hatte ich lediglich, dass die Daten über die Standardeingabe kommen.

    Dann haste auch gesehen, daß es ca. 4 Seiten darum ging, daß es nicht das tollste ist dafür nen Baum zu implementieren?

    Jester schrieb:

    Es kann natürlich durchaus sein, daß Du Dich da an frühere Threads erinnert fühlst. Kommt öfter vor, daß ich widerspreche wenn jemand Mist erzählt.

    Oha, schwerer Seitenhieb. Netter Versuch.

    Okay, Du hast es bemerkt. 😃

    Wenn ich mir angucke, wie alt das Topic schon ist, spielt das aber vermutlich eh keine Rolle mehr.

    Vermutlich nicht. Ich hoffe er hat min_element genommen. :p



  • Xin schrieb:

    Im Gegensatz zu finix Behauptung, halte ich meine Überzeugung für eine begründete Möglichkeit, aber nicht für die einzig machbare.

    Oh Mann, du bist echt ein Knaller. Eine ironischere falsche Behauptung hättest du wohl kaum mit Absicht hinbekommen.



  • Jester schrieb:

    Zum einen halte ich die stl-Lösung tatsächlich für besser. Zum anderen hat mich auch dieses "Nachdem jetzt hier keiner das vernünftig lösen konnte und alle nur Mist erzählt haben, zeigt euch der Onkel Xin jetzt mal, wie man's richtig macht"-Gelaber ein bißchen angenervt.

    Schön, wie Du den Onkel Xin so interpretierst... aber auch hier sei Meinungsfreiheit gegeben.

    Jester schrieb:

    Und seien wir ehrlich, wirklich argumentativ war diese 'Argumentation '3:0' nicht. Das war mehr 'Wir hauen mal mi'm Hammer drauf, dann ist hoffentlich Ruhe.'.

    Zumindest schneller und kürzer sind (auch objektiv gesehen) widerlegt. Über einfacher kann man sicherlich noch streiten. Aber hey, warum sollte ich 2:1 spielen, wenn Du mich vielleicht auch mit 3:0 davonkommen läßt. 😃

    *lach* Ich sehe nix mit 2:1, aber wenn Du meinst...
    Ich muss nicht als Gewinner aus einer Forums-Diskussion gehen... im Recht zu sein, reicht mir vollkommen. 😎
    Ich muss das aber nicht mehr aller Welt beweisen.

    Jester schrieb:

    Was ich in dem Thread quer gelesen habe, gab' mir einen guten Überblick. Verpasst hatte ich lediglich, dass die Daten über die Standardeingabe kommen.

    Dann haste auch gesehen, daß es ca. 4 Seiten darum ging, daß es nicht das tollste ist dafür nen Baum zu implementieren?

    Die Katastrophe überhaupt... falls der Hammer mit der STL ihn nicht umhaut, schlagen wir mit der O-Notation und Bäumen nochmal hinterher. O( Baum ), genau das fehlt einem Anfänger, um das Problem des kleinsten Wertes zu lösen: erstmal herausfinden, was überhaupt eine O-Notation ist... Ich wartete die ganze Zeit darauf, dass sich eine große Diskussion über balancierte und unbalancierte Bäume ergibt. <kopfschüttel>

    Jester schrieb:

    Wenn ich mir angucke, wie alt das Topic schon ist, spielt das aber vermutlich eh keine Rolle mehr.

    Vermutlich nicht. Ich hoffe er hat min_element genommen. :p

    Ich hoffe, er konnte sein Problem rechtzeitig lösen.



  • Jester schrieb:

    Zumindest schneller und kürzer sind (auch objektiv gesehen) widerlegt. Über einfacher kann man sicherlich noch streiten. Aber hey, warum sollte ich 2:1 spielen, wenn Du mich vielleicht auch mit 3:0 davonkommen läßt. 😃

    Naja, im Prinzip steht das 3:0. Wenn ich die Zeile std::min_element(...) sehe weiß ich umgehend & automatisch was da passiert, im Gegensatz zu einer handgestrickten Schleife.



  • finix schrieb:

    ... Wenn ich die Zeile std::min_element(...) sehe weiß ich umgehend & automatisch was da passiert, im Gegensatz zu einer handgestrickten Schleife.

    Ne for-schleife, die man mit einem Blick erfassen kann, sollte man als C++ Progger jedenfalls "auch" lesen können. 😕



  • Für einen Anfänger der die STL noch nicht gut kennt ist die for Schleife super toll verständlich (wenns auch ein paar Sekunden dauert), die "min_element" Sache aber komplett unverständlich, bzw. kann er nie sicher sein "richtig geraten" zu haben, bis er nachgeguckt hat.

    Dafür ist für einen "STL Kenner" die "min_element" Sache schneller verständlich, weils weniger zu lesen ist, und er sowieso im Schlaf weiss was "min_element" nun genau tut.

    Im Prinzip machen beide Varianten dasselbe. Die Frage ist wohl eher wie man die Frage des OP interpretiert. Wenn er bloss wissen will wie man sowas programmiert, weil er überhaupt keine Lösung selbst hinbekommt, dann ist die for Schleife wohl die "richtige" Antwort. Wenn er weiss wie man es selbst ausprogrammiert, aber wissen möchte ob's nicht was "fertiges" gibt um genau so eine Schleife zu ersetzen dann ist "min_element" die "richtige" Antwort.



  • Xin schrieb:

    Die Katastrophe überhaupt... falls der Hammer mit der STL ihn nicht umhaut, schlagen wir mit der O-Notation und Bäumen nochmal hinterher. O( Baum ), genau das fehlt einem Anfänger, um das Problem des kleinsten Wertes zu lösen: erstmal herausfinden, was überhaupt eine O-Notation ist... Ich wartete die ganze Zeit darauf, dass sich eine große Diskussion über balancierte und unbalancierte Bäume ergibt. <kopfschüttel>

    Ach, das war nun auch falsch, das geklärt zu haben? Jo, macht ja den Thread länger, wenn wir klären, daß der Baum nicht toll ist, obwohl ihn jemand als toll vorgeschlagen hat. Werd ich mir merken. In Zukunft lieber Mist unkommentiert stehen lassen, und nicht den Thread länger machen!

    Letztlich schreibe ich meine Beiträge aber auch nicht unbedingt nur für den OP. Es gibt schließlich noch mehr Leser. Wer damit nichts anfangen kann, der kann's ja überlesen. Wenn eine vernünftige Begründung einen Fachbegriff benötigt, dann benutze ich den auch. Überspring meine Beiträge also einfach, wenn Du mit Begriffen wie "O(.)" oder "Baum" nicht so fit bist.

    Gegen "kürzer" und "nicht schneller" sehe ich vermutlich keine Argumente mehr von Dir. Wenn Du der Meinung bist, das stimmt nicht, dann sag doch was. Aber spiel hier nicht die beleidigte Leberwurst.



  • hustbaer schrieb:

    Wenn er weiss wie man es selbst ausprogrammiert, aber wissen möchte ob's nicht was "fertiges" gibt um genau so eine Schleife zu ersetzen dann ist "min_element" die "richtige" Antwort.

    becks21 schrieb:

    Hallo!
    Ich hab mehrere Werte und ich muss das Minimum der Werte herausfinden, gibt's da eine Funktion oder muss ich das selbst programmieren?

    Ich denke, die Frage war klar: "Gibs da nich was fertiges?" Und diese Frage stellt man sich als Anfänger oft. Wenn man mal ne verkettete Liste gemacht hat, dann reicht das, und man möchte sich der nächsten Herausforderung stellen. Darum Probs an die, die ihre Erfahrung teilen.

    Ich muss einfach mal zu dem ganzen Hickhack sagen, ich bin froh, dass hier immer mal wieder andere Lösungswege eingebracht werden. Auch wenn jetzt vielleicht die Bäume nicht so passen, der OP googelt später vielleicht mal nach, was dass denn ist und wo er das brauchen könnte.
    Ich hab am Anfang alles mit Arrays und for Schleifchen gemacht, und erst durch die Antworten von Usern die STL Container, Iteratoren und Algorithmen kennen gelernt und auch verstanden, aber auch Funktionsobjekte, Templates und schliesslich auch ein paar Patterns. Und hey, danke! Das hats echt gebracht. Ich bin übers Stadium der Pascal Programmierung mit C Syntax hinaus gekommen.

    Danke Forumianerinnen und Forumianer 👍 🙂



  • Jester schrieb:

    Gegen "kürzer" und "nicht schneller" sehe ich vermutlich keine Argumente mehr von Dir. Wenn Du der Meinung bist, das stimmt nicht, dann sag doch was. Aber spiel hier nicht die beleidigte Leberwurst.

    Ich habe mich noch nicht auf eine Datenstruktur festgelegt, sondern gefragt, wie die Daten vorliegen.
    "nicht schneller" kann kein Argument sein, weil überhaupt kein Vergleich möglich ist, bevor ich mich auf etwas festlege. Lege ich mich spontan auf ein Array fest, kannst Du wettern wie Du lustig bist, schneller als ein Array wirst Du jedenfalls nicht.
    Also ist es auch noch nicht möglich mich mit "nicht schneller" zu widerlegen. Im Gegenteil, ich frage mich, warum jemand schon wettert, bevor ich einen fertigen Ansatz anbiete. Ist halt zu früh, um einfach nur dagegen zu sein.

    Ein Argument "kürzer" sehe ich hier auch nur sehr bedingt, da eine derart simple for-Schleife eben zwei Zeilen mehr sind als std::min_element().

    Wäre mein Ansatz komplett gewesen, so stelle ich mich gerne jeder Kritik, bei guten Argumenten lerne ich schließlich vielliecht selber noch etwas.

    Die beleidigte Leberwurst finde ich nett. Ich bin wieder erstaunt, dass die eine Seite meint, ich akzeptiere keine Meinung neben meiner und die andere, dass ich beleidigt sein müsse, nur weil jemand meine Meinung nicht annehmen möchte.
    Vielleicht liegt die Antwort in der Mitte?
    Leute, die wie finix herumtrollen finden sich überall. Mein Fehler, dass ich ihn zu Beginn davon ausging, dass es ihm um Austausch ging. Aber sowas schockt nun wirklich nicht mehr.

    Für mich ändert sich nichts, ich sehe weder ein ausreichend starkes Argument meine Meinung zu ändern - Argument wogegen auch, ich habe ja noch gar nichts fertiges angeboten - noch habe ich ein Problem damit, wenn jemand derartige Aufgaben mit der STL löst. Ich bin lediglich einen anderen Weg gegangen, der auch für jemanden nachzuvollziehen ist, der Templates noch nicht kennt. Das ist mein wichtiges Pro-Argument für die Schleife.
    Jeder ist seines eigenen Quelltexts Schmidt und solange er das Problem adequat löst, ist es doch gut.

    THX 1138 schrieb:

    Ich hab am Anfang alles mit Arrays und for Schleifchen gemacht, und erst durch die Antworten von Usern die STL Container, Iteratoren und Algorithmen kennen gelernt und auch verstanden, aber auch Funktionsobjekte, Templates und schliesslich auch ein paar Patterns. Und hey, danke! Das hats echt gebracht. Ich bin übers Stadium der Pascal Programmierung mit C Syntax hinaus gekommen.

    Du hast Arrays programmiert, Du hast gelernt, Du bist über C Syntax hinaus gekommen.

    Du hast die Frage nicht gestellt.



  • konfus schrieb:

    finix schrieb:

    ... Wenn ich die Zeile std::min_element(...) sehe weiß ich umgehend & automatisch was da passiert, im Gegensatz zu einer handgestrickten Schleife.

    Ne for-schleife, die man mit einem Blick erfassen kann, sollte man als C++ Progger jedenfalls "auch" lesen können. 😕

    Natürlich. Aber es macht trotz allem einen Unterschied, selbst wenn er bei diesem Beispiel recht marginal und nahezu zu vernachlässigen ist.

    Bei std::min_element weiß man sofort was geschieht, bei einer Schleife muss man sich den Code erst ansehen, verstehen, und wird ihn dann gedanklich sowieso zu einem logischen min_element -Block zusammenfalten.

    Abgesehen davon dass selbstgestrickte Lösungen anfälliger für Bugs und Performanceprobleme sind. (Siehe z.B. Xins Beispiel.)



  • Xin schrieb:

    [...]
    Also ist es auch noch nicht möglich mich mit "nicht schneller" zu widerlegen. Im Gegenteil, ich frage mich, warum jemand schon wettert, bevor ich einen fertigen Ansatz anbiete. Ist halt zu früh, um einfach nur dagegen zu sein.

    Du schnallst es nicht, was? Es geht darum dass die Schleife nicht schneller ist.

    Xin schrieb:

    Ein Argument "kürzer" sehe ich hier auch nur sehr bedingt, da eine derart simple for-Schleife eben zwei Zeilen mehr sind als std::min_element().

    Tz tz. Du bringst es wohl nicht über dich einfach mal zu sagen "ja, es ist kürzer", was?
    Darüber hinaus geht es nicht nur um kürzer an sich, sondern vor allem verständlicher, das ist der eigentliche Punkt.

    Und wie sieht's mit folgenden Argumenten für std::min_element aus:
    ➡ flexibler
    ➡ robuster

    Xin schrieb:

    Die beleidigte Leberwurst finde ich nett. Ich bin wieder erstaunt, dass die eine Seite meint, ich akzeptiere keine Meinung neben meiner und die andere, dass ich beleidigt sein müsse, nur weil jemand meine Meinung nicht annehmen möchte.
    Vielleicht liegt die Antwort in der Mitte?

    Vielleicht liegt die Antwort nicht in der Mitte, sondern vielleicht liegst du auch ganz einfach falsch?

    Niemand sagt dass die Schleife unpraktikabel, 'evil' oder sonstwas ist, aber gegenüber std::min_element ist sie ganz einfach die schlechtere Wahl.

    Xin schrieb:

    Leute, die wie finix herumtrollen finden sich überall. Mein Fehler, dass ich ihn zu Beginn davon ausging, dass es ihm um Austausch ging. Aber sowas schockt nun wirklich nicht mehr.

    Fuck you, too 🙂



  • Edit:
    sorry hab nen überflüssigen Beitrag gemacht ...



  • (-:

    finix schrieb:

    Abgesehen davon dass selbstgestrickte Lösungen anfälliger für Bugs und Performanceprobleme sind. (Siehe z.B. Xins Beispiel.)

    Ich konnte bisher keinen Fehler in meinem Dreizeiler finden.

    Ich bin auch überzeugt, dass die meisten Dreizeiler, die ich formuliere, korrekt ablaufen. Da können natürlich subjektiv unterschiedliche Erfahrungswerte vorliegen.

    finix schrieb:

    Xin schrieb:

    Also ist es auch noch nicht möglich mich mit "nicht schneller" zu widerlegen. Im Gegenteil, ich frage mich, warum jemand schon wettert, bevor ich einen fertigen Ansatz anbiete. Ist halt zu früh, um einfach nur dagegen zu sein.

    Du schnallst es nicht, was? Es geht darum dass die Schleife nicht schneller ist.

    Yepp, der Fettdruck hat mich überzeugt. Zusammenhanglos, aber warum soll ich mich nicht einfach mal überzeugen lassen von jemand, der einfach mal dagegen ist. 🙂

    finix schrieb:

    Tz tz. Du bringst es wohl nicht über dich einfach mal zu sagen "ja, es ist kürzer", was?

    "Ja, es ist kürzer" (zwei Zeilen), wenn man für seine Daten keinen zusätzlichen Iterator programmieren muss. Ist alles schon gesagt worden.

    finix schrieb:

    Darüber hinaus geht es nicht nur um kürzer an sich, sondern vor allem verständlicher, das ist der eigentliche Punkt.

    Nicht für jemanden, der seine ersten Schritte in C++ unternimmt und noch nicht weiß, was Templates sind. Ist auch schon alles gesagt worden.

    finix schrieb:

    Und wie sieht's mit folgenden Argumenten für std::min_element aus:

    ➡ flexibler

    Bis ich eine zusätzliche Bedingung benötige. Die Schleife genauso flexibel, wie die Funktion, die die Schleife enthält. Allerdings verzichtet sie auf den Umweg über virtuelle Funktionen.

    finix schrieb:

    ➡ robuster

    Wer sich bei diesem Dreizeiler bereits Gedanken machen muss, ob er das korrekt implementiert bekommt... der hat auf jeden Fall recht, wenn er std::min_element() verwendet.

    finix schrieb:

    Vielleicht liegt die Antwort nicht in der Mitte, sondern vielleicht liegst du auch ganz einfach falsch?

    Vielleicht. Vielleicht auch nicht. Wir zwei, wir werden es wohl nie herausfinden.

    finix schrieb:

    Fuck you, too 🙂

    Ist auch schon alles gesagt worden.

    Wie sieht's aus... wollen wir noch eine Runde? 🙂


Anmelden zum Antworten