Проверка, все ли элементы вектора равны в C ++

Если у меня есть вектор значений и я хочу проверить, все ли они одинаковы, каков наилучший способ сделать это в C ++ эффективно? Если бы я программировал на каком-то другом языке, таком как R, один из способов, которым я хотел бы прыгнуть, - это возвращать только уникальные элементы контейнера, а затем, если длина уникальных элементов больше 1, я знаю, что все элементы не могут быть одинаковыми. В C ++ это можно сделать так:

//build an int vector
std::sort(myvector.begin(), myvector.end());
std::vector::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;
}

Ответы на вопрос(12)

Ваш ответ на вопрос