Jak usunąć duplikaty w C++ 98?

0

Mam tablicę z liczbami i w niej występują niektóre liczby dwukrotnie. Do funkcji muszę tylko przekazać liczby unikalne.
Nie mam pojęcia jak to zrobić w tej wersji C++, normalnie bym zrobił tak

arr= [1,2,2]
std::unordered_set<int> s;
    for (int i: arr) {
        s.insert(i);
    }
0

Ee, skoro mają być unikalne, to zgaduję, że kolejność nie ma znaczenia, więc możesz sobie je wpierw posortować, a potem zrobić coś w stylu

int last = arr[0];
size_t j = 0;
for (size_t i = 1; i < 3; ++i) {
    if (arr[i] != last) {
        j++;
        last = arr[j] = arr[i];
    }
}
arr_size = j + 1;
4

@enedil: jak możesz sortować, to zamiast na piechotę: http://www.cplusplus.com/reference/algorithm/unique/
Rozumiem, że std::set z jakiegoś powodu Ci nie leży? Wersja "drzewiasta" a nie hashująca powinna już być dostępna w C++98.

1 użytkowników online, w tym zalogowanych: 0, gości: 1