Maximumwert eines Vectors ermitteln



  • Hi!
    Gibt es eine einfache Methode den maximumwert eines double Vektors zu ermittln? Also ohne alle Elemente zu durchlaufen?
    In meinem Buch (c++ primer) steht, dass man das irgendwie mit max() machen koennte. Ich habs so probiert:
    maximum=round(*max(vec.begin(),vec.end()));
    round ist dabei einfach eine function, die einen double nimmt und auf ne naechsten int runded, also nicht spannendes! Das ganze gibt allerdings immer 0, obwohl das Maximum 2500 ist.
    Hat jemand ne Idee was ich verbockt habe oder ob das ueberhaupt so geht?
    Danke schoen!!



  • ist ja nicht gerade ne ansi-c frage wenn du stl-fragen stellst...
    meinst du sowas?

    #include <iostream>
    #include <vector>
    #include <algorithm>
    
    int main(){
    	std::vector<double> a;
    	a.push_back(4711.1);
    	a.push_back(4011.1);
    	a.push_back(4311.1);
    
    	std::cout<<*std::max_element(a.begin(),a.end())<<std::endl;
    
    }
    

    an sonsten einfach ab und zu ein blick auf www.sgi.com/tech/stl riskieren



  • Dieser Thread wurde von Moderator/in AJ aus dem Forum ANSI C in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • ja, genau das! sorry fuer das falsche forum... bin etwas doof gewesen, aber max_element ist genau das richtige!!


Log in to reply