Array
-
TyRoXx schrieb:
So besser?
Nein, denn es sind viel zu viele Fehler drin.
-
Nee nicht besser.
Mit Lambda-Ausdrücken muss man einen Anfänger nicht belästigen. Es geht hier um Leute, die gerade lernen was eine Funktion ist und wie man Schleifen und structs verwendet. Deshalb muss man aber auch nichts ins andere Extrem fallen und rotzigen C Code posten.
-
lolalter schrieb:
Und die beiden for_each mit Lambdas zur Ein- und Ausgabe sind ja hoffentlich ein Witz, oder?
Wieso Witz? Wie würdest du es den machen? Ich find das gar net so schlecht.
-
out schrieb:
lolalter schrieb:
Und die beiden for_each mit Lambdas zur Ein- und Ausgabe sind ja hoffentlich ein Witz, oder?
Wieso Witz? Wie würdest du es den machen? Ich find das gar net so schlecht.
Äh, ein wenig übertrieben ist es schon, anstatt bspw. gleich
for(auto& m : arr) std::cin >> m;zu schreiben.
Edit: Referenz vergessen.
-
Hacker schrieb:
nicht nur schöner, sondern auch evt. performanter (aber wie Lambdas geinlined oder optimiert werden, weiß ich nicht).
So wie alle anderen Funktionen auch.
Was soll das beim Lesen auscinfür eine Rolle spielen?Hacker schrieb:
for(auto m : arr) std::cin >> m;Und falsch ist es obendrein. Vielleicht ist es deutlicher, wenn du
autoselbst durchMitarbeiterersetzt.
Visual C++, ein typischer Einsteiger-Compiler, kann das nicht. Für einen Anfänger sehr verwirrend.
-
TyRoXx schrieb:
Hacker schrieb:
for(auto m : arr) std::cin >> m;Und falsch ist es obendrein. Vielleicht ist es deutlicher, wenn du
autoselbst durchMitarbeiterersetzt.
Visual C++, ein typischer Einsteiger-Compiler kann das nicht. Für einen Anfänger sehr verwirrend.Referenz vergessen

Visual Studio kann doch echt garnix
Und was bitte ist an range-based for verwirrend? Nicht nur auf Wikipedia (unter C++11) erklärt, sondern auch vom Kontext her erkenntlich.Was es beim Lesen aus cin für eine Rolle spielt? for_each muss die Funktion dann entsprechend oft aufrufen, und ist selbst eine Funktion. Wenn die Lambdas nicht geinlined würden, würde doch wie bei einer normalen Funktion Die Rücksprungadresse und die Parameter auf den Stack gelegt, die Funktion angesprungen, die Parameter würden nach dem Ablauf der Funktion wieder freigegeben und das Programm zum Ausgangspunkt zurückspringen.
-
Stream Iteratoren?
-
Woher soll ich denn wissen, was er überhaupt versteht? Dass er das wahrscheinlich nicht versteht war mir relativ klar..
Ich hätte ihm ja sofort geholfen, wenn er wenigstens einen Ansatz hätte.. Einfach die Aufgabenstellung zu posten klingt doch zu sehr nach Hausaufgaben.Ich persönlich find ja meinen Ansatz mit std::for_each schöner, aber das ist wahrscheinlich Ansichtssache, solange ich nicht weiss was schneller ist.
-
Hacker schrieb:
Und was bitte ist an range-based for verwirrend? Nicht nur auf Wikipedia (unter C++11) erklärt, sondern auch vom Kontext her erkenntlich.
Ich meide das neue
fornoch in Beispielen, weil das ein sehr verbreiteter Compiler nicht kann. Ein erfahrener Programmierer weiß das und kennt andere Alternativen, aber ein Anfänger ist mit der kryptischen Fehlermeldung möglicherweise überfordert.Hacker schrieb:
Was es beim Lesen aus cin für eine Rolle spielt? for_each muss die Funktion dann entsprechend oft aufrufen, und ist selbst eine Funktion.
Du meinst nicht, dass das irrelevant sein könnte, weil beim Lesen aus der Standardeingabe typischerweise zig Funktionen inklusive Syscalls beteiligt sind? Ganz zu schweigen von der Verzögerung beim Eingeben, wenn das mit der Tastatur passiert.
-
Ich hoffe "lolalter" trollt. So dumm sind Menschen - hoffentlich - nicht.
-
TyRoXx schrieb:
Hacker schrieb:
Und was bitte ist an range-based for verwirrend? Nicht nur auf Wikipedia (unter C++11) erklärt, sondern auch vom Kontext her erkenntlich.
Ich meide das neue
fornoch in Beispielen, weil das ein sehr verbreiteter Compiler nicht kann. Ein erfahrener Programmierer weiß das und kennt andere Alternativen, aber ein Anfänger ist mit der kryptischen Fehlermeldung möglicherweise überfordert.Gut. Er kann natürlich auch einfach eine ganz normale Schleife nehmen, und dann später auf C++11-features die VC++ nicht unterstützt zurückgreifen.
for(int a(0);a < m.size();++a) std::cin >> m[a];Gebastel mit
istream_iteratormacht dann aber auch keinen Sinn, wenn er ein Anfänger ist
Was die Performance angeht: Gut, das ist wohl stark übertrieben.
-
Hacker schrieb:
Gut. Er kann natürlich auch einfach eine ganz normale Schleife nehmen, und dann später auf C++11-features die VC++ nicht unterstützt zurückgreifen.
Ich hab absolut keine Ahnung, was VC++ kann und was nicht. Ich benutze den GCC 4.7 unter Ubuntu.