ID photo of Ciro Santilli taken in 2013 right eyeCiro Santilli OurBigBook logoOurBigBook.com  Sponsor 中国独裁统治 China Dictatorship 新疆改造中心、六四事件、法轮功、郝海东、709大抓捕、2015巴拿马文件 邓家贵、低端人口、西藏骚乱
cpp/vector_remove_duplicates.cpp
// Check if two std::string objects are a permutation of one another.
// https://stackoverflow.com/questions/16476099/remove-duplicate-entries-in-a-c-vector

#include <cassert>
#include <unordered_set>
#include <vector>

template <class T>
std::vector<T> remove_duplicates(const std::vector<T>& v) {
    std::unordered_set<T> set;
    std::vector<T> ret;
    for (const auto& n : v) {
        if (set.insert(n).second)
            ret.push_back(n);
    }
    return ret;
}

int main() {
    assert(
        remove_duplicates(std::vector{3, 2, 2, 1, 3}) ==
        (std::vector{3, 2, 1})
    );
}