C++ Distinct
#include <unordered_set>
#include <vector>

int distinct(const std::vector<int>& a)
{
    std::unordered_set<int> unique(a.begin(), a.end());

    return static_cast<int>(unique.size());
}

This counts unique values by tracking what has already been seen.