Überprüfen, ob alle Elemente eines Vektors in C ++ gleich sind

Wenn ich einen Vektor, der die Werte und überprüfen möchten, dass Sie alle die gleiche, was ist der beste Weg, dies zu tun in C++ effizient? Wenn ich die Programmierung in anderen Sprachen wie R einer Art, wie mein Verstand springt, ist wieder nur die eindeutigen Elemente des Containers und dann, wenn die Länge der einzigartigen Elemente ist mehr als 1, ich kenne al die Elemente können nicht die gleichen sein. In C++ kann dies wie folgt vorgenommen:

//build an int vector
std::sort(myvector.begin(), myvector.end());
std::vector<int>::iterator it;
//Use unique algorithm to get the unique values.
it = std::unique(myvector.begin(), myvector.end());
positions.resize(std::distance(myvector.begin(),it));
if (myvector.size() > 1) {
    std::cout << "All elements are not the same!" << std::endl;
}

Aber das Lesen über das internet und SO, sehe ich die anderen Antworten so mit einer Gruppe oder der Algorithmus find_if. Also, was ist der effizienteste Weg, dies zu tun, und warum? Ich mir vorstellen, bei mir ist das nicht der beste Weg, da es sich um das Sortieren jedes element und dann ein ändern der Größe der Vektor - aber vielleicht bin ich falsch.

Dank,
Ben.

InformationsquelleAutor der Frage Ward9250 | 2013-11-29

Schreibe einen Kommentar