На самом деле это довольно просто, если вы можете использовать std::set
. Поскольку std::set
будет хранить только уникальные предметы, вы можете создать std::set
из std::vector
и сравнить их размеры. Если они совпадают, то вектор имеет уникальные элементы. Это будет выглядеть как
template <typename T>
bool unique(const std::vector<T>& container)
{
return container.size() == std::set<T>{container.begin(), container.end()}.size();
}