2 Fragen: lambda-Literatur // Bessere Lösung für ein Problem
-
Ich hab zwei unabhängige Fragen:
1.) Ich würde gerne was über die lambda-Ausdrücke bei C++ lernen. Könnt ihr mir ein Internet-Dokument bzw. eine Website empfehlen, die lambda-Ausdrücke gut erklärt (d.h. unter anderem nicht zu lang)?
2.) Ich hatte letztens folgende Situation und wusste nicht, wie ich sie am Besten lösen soll. Inzwischen hab eine Lösung, aber ich würde mich für Alternativen interessieren, da meine Lösung jetzt nicht unbedingt schön ist.
Ich hab eine Funktion skizzenTest() mit einigen Parametern, in der unter anderen eine Matrix SA berechnet wird. Wenn man die Funktion mit ähnlichen Parametern aufruft, weiß man, dass wieder das gleiche SA berechnet werden wird. Von daher liegt nahe, dass der erste Aufruf von skizzenTest SA zurückgeben sollte, um bei weiteren Aufrufen SA als zusätzlichen Parameter angeben zu können. skizzenTest hat bereits einen Rückgabewert und daher dachte ich mir, dass es schöner wäre, wenn der Parameter ein Zeiger auf eine Matrix ist.
Meine jetzige Lösung: Der zusätzliche Parameter ist "Matrix *matSApt = NULL"
Es wird zwischen 3 Fällen unterschieden:
- wenn matSApt == NULL dann wird SA berechnet und nicht zurückgegeben (d.h. der Aufrufer muss matSApt nicht deleten)
- wenn matSApt->isEmpty() dann wird SA berechnet und zurückgegeben, indem matSApt entsprechend verändert wird. isEmpty() ist true, falls SA eine 0x0-Matrix ohne Daten ist
- ansonsten wird das übergebene SA benutzt.
-
1.) google: lambda c++? Z.B.: http://www.cprogramming.com/c++11/c++11-lambda-closures.html , http://candrews.net/blog/2011/07/understanding-c-0x-lambda-functions/ , ...
2.) Du brauchst kein
new. Wie waere es mit einem [in,out]-Parameter durch eine Referenz?
-
1.) googeln kann ich selbst. Mich hätte nur interessiert, ob jemand irgendwas besonders empfehlen kann.
2.) Ja stimmt, warum eigentlich nicht.