Кстати, как я понимаю, есть только два разумных варианта получения вектора уникальных значений
1 — после заполнения вектора отсортировать перед вызовом std::unique
2 — в процессе заполнения вектора проверять на уникальность (что можно сделать только поддерживая вектор в сортированном состоянии, иначе будет очень медленно)
остальное все лишь производные этих двух методов, я прав?