Fragen zum std::sort
-
cartel schrieb:
Mal so interessehalber, wie wäre man ohne c++11 weitergekommen?
Z.B. ein Funktionsobjekt basteln:
struct compare_by_pixelvalue{ typedef Paar first_argument_type; typedef Paar second_argument_type; typedef bool result_type; const bild* b; compare_by_pixelvalue(const bild& b) : b(&b){} bool operator()(const Paar& x, const Paar& y) const { return b->getPixel(x.first, x.second) < b->getPixel(y.first, y.second); } }; void f(){ bild b; PaarListe paare; // .... std::sort(paare.begin(), paare.end(), compare_by_pixelvalue(b)); }
-
Ich würde die typedefs noch weglassen und das Bild als const& halten.
Kommt da einegntlich das selbe Compilat raus? Also werden lamdas geinlined?
übrigens > statt <, denke, er wollte die größten Werte vorne.
-
volkard schrieb:
Ich würde die typedefs noch weglassen und das Bild als const& halten.
[...]
übrigens > statt <, denke, er wollte die größten Werte vorne.Danke für die nette Vorlage...
Jetzt kommt die große Stunde der typedefs
std::sort(paare.begin(), paare.end(), std::not2(compare_by_pixelvalue(b)));Referenzen als Member sind wohl nicht ganz unumstritten. Und da ich mir keinen Zacken aus der Krone breche und die Standardbibliothek es auch so macht bin ich jetzt in der Pointer-Member Fraktion...
-
Furble Wurble schrieb:
volkard schrieb:
Ich würde die typedefs noch weglassen und das Bild als const& halten.
[...]
übrigens > statt <, denke, er wollte die größten Werte vorne.Danke für die nette Vorlage...
Jetzt kommt die große Stunde der typedefs
std::sort(paare.begin(), paare.end(), std::not2(compare_by_pixelvalue(b)));Ist das noch eine "Strict weak ordering"?
-
volkard schrieb:
Ich würde die typedefs noch weglassen und das Bild als const& halten.
Würdest du den Funktor dann auch non-assignable machen?