Wie kann ich die lambda auch für die container-Vergleich-operator ?

Dies ist, wie ich verwenden würde eingebaute Funktion oder die neue Klasse als eine benutzerdefinierte Komparator -

priority_queue< int, vector<int>, greater<int> > third (myints,myints+4);

  //using mycomparison:
  priority_queue< int, vector<int>, mycomparison > q1;
class mycomparison
{ 
public: 
  bool operator() (const int& lhs, const int&rhs) const
  {
     return (lhs<rhs);
  }
};
  typedef priority_queue<int,vector<int>,mycomparison> q2;

Aber ich Frage mich, ob ich verwenden kann, lambda-Funktionen gibt es ..

  • Lambdas sind funktoren, in der Erwägung, dass die Container müssen einen Funktor geben. Sie könnten in der Lage sein, etwas zu tun mit decltype obwohl (aber ich würde nicht erwarten, dass es funktioniert in MSVC2010).
  • Ja, Sie könnte verwenden Sie einen lambda-Ausdruck, aber die lambda würde müssen so global wie die meisten globalen Deklaration von seiner Verwendung als eine Art, die Niederlagen den Zweck und ist in der Regel messier.
InformationsquelleAutor | 2013-03-09
Schreibe einen Kommentar