Hence I have std::vector<type>.
Class type has no operator<
but has operator==
.
Thus, I cannot sort my vector using std::unique
.
How I can remove duplicated elements from vector?
Hence I have std::vector<type>.
Class type has no operator<
but has operator==
.
Thus, I cannot sort my vector using std::unique
.
How I can remove duplicated elements from vector?
I think best option is to write some binary predicate to use for the sorting of the vector and use std::unique
afterwards. Keep in mind that the predicate must be transitive!
If this is not an option you can not do anything else but use the quardatic algorithm:
std::vector<type> a
std::vector<type> result;
for (unsigned i = 0; i < a.size(); ++i) {
bool repeated = false;
for (int j = 0; j < i; ++j) {
if (a[j] == a[i]) {
repeated = true;
break;
}
}
if (!repeated) {
result.push_back(a[i]);
}
}
// result stores the unique elements.