Finden Sie max/min der Vektor von Vektoren

Was ist das effizienteste und standard (C++11/14) Weg zu finden, der min - /max-Element-Vektor von Vektoren?

std::vector<std::vector<double>> some_values{{5,0,8},{3,1,9}};

wollte die max-element ist 9

wollte die min element ist 0

  • std::minmax_element für die inneren Vektoren.
  • Warum nicht zu benutzen 2 geschachtelte Schleifen? Die anderen Möglichkeiten, vielleicht weniger lesbar.
  • Du meinst das pass-throgh jeder innere Vektor-und call-minmax_elemnt und dann finden die minmax_elemnt das Ergebnis ?
  • es ist eine Lösung. Aber ich Frage mich, ob es eine std-Funktion oder das Muster für diese.
  • Gehen Sie einfach über jeder Vektor, und erstellen Sie zwei Variablen min und max, und vergleichen Sie Sie
  • ja, das ist die Letzte option für mich. Ich war auf der Suche nach etwas mehr klar
  • Für die äußere Schleife, es scheint komplizierter zu verwenden, direkt standard-Algorithmus.
  • Ich sehe... BTW, ist nicht möglich, profitieren bilden die Kontinuität der Eigenschaft der Speicherung von Vektor, um es zu konvertieren, um damit um so eindimensional ?
  • ein Vektor von Vektoren ist nicht zusammenhängend gespeichert, jeder innere Vektor gespeichert ist, in seinem eigenen zusammenhängenden block von dynamisch zugewiesenen Speicher, so kann man nicht wirklich behandeln Sie als "eindimensionale". Sie könnte sich ändern, wie Sie speichern Sie Ihre 2D-array so, dass Sie zusammenhängend gespeichert sind, dann könnten Sie in der Lage sein, um die Implementierung zu vereinfachen ein wenig.
  • Sie sollten klären, Ihre Frage - entweder text oder ein Beispiel - deutlich zu machen, die Sie suchen der min-und max - double Wert, und nicht die min-und max - vector<double> angesichts element mehrdeutig ist (der äußere Vektor-Elemente sind die inneren Vektoren).
  • es wurde getan

Schreibe einen Kommentar