Min- Max- Werte aus Vectortabelle ermitteln

fujitsufan

Erfahrenes Mitglied
Hallo,

kennt jemand eine einfache Syntax, die mir den kleinsten- und/oder den größten Wert aus einer Vectortabelle zurückliefert.
Es gibt tolle Funktionen in der Header Altorithm.
Code:
#include <algorithm>
Ich fülle eine Vectortabelle mit Werten vom Typ double.
Dazu Deklaration:
Code:
vector <double> vRasterListe;
double dMinValue, dMaxValue;
Vektortabelle füllen und Doppeleinträge vermeiden:
Code:
vRasterListe.clear();
for(unsigned int i=0; i<this->vKundenRasterKoord.size(); i++)
{
    if(find(vRasterListe.begin(), vRasterListe.end(), this->vKundenRasterKoord[i].dX) == vRasterListe.end())
        vRasterListe.push_back(this->vKundenRasterKoord[i].dX);
}
Anschließend Vektortabelle sortieren:
Code:
sort(vRasterListe.begin(), vRasterListe.end());
Zugriff auf Tabellenanfang klappt:
Code:
dMinValue = *vRasterListe.begin()
Zugriff auf Tabellenende klappt nicht, Programm strüzt ab;
ErrorVectorTable.jpg
Code:
dMaxValue = *vRasterListe.end();
Selbst mit Itterator dazwichen gibts das gleiche Problem.

Geht das Ermitteln von Min- und Maxwert irgendwie einfacher, auch ohne zahlreiche Schleifen?

Vielen Dank!
fujitsufan
 
Hallo,
du kannst bereits beim einsetzen in den Vektor den aktuellen Wert mit einem min, max Wert überprüfen. Dadurch hast du zu jeder Zeit schon deinen min/max Wert bekannt.
Das erspart auch das sortieren, sofern dies nicht sowieso nötig ist.

Ansonsten kannst du auf das letzte Vektor-Element mittels back() zugreifen oder vektor.at(vector.size()-1)

Grüße,
Jennesta
 
Hallo

Als kleine Randbemerkung:
Es gibt die Funktionen std::max_element und std::min_element

Grüsse
Cromon
 
Hallo zusammen,
funktioniert alles, vielen Dank.
Bei std::max_element und std::min_element kann ich auch noch das sorieren einsparen.

fujitsufan
 

Neue Beiträge

Zurück