Форум программистов, компьютерный форум CyberForum.ru

Удалить повторы в элементах массива - C++

Восстановить пароль Регистрация
 
Vlad_
7 / 7 / 0
Регистрация: 07.09.2012
Сообщений: 174
27.05.2014, 09:54     Удалить повторы в элементах массива #1
Идея состоим в том что бы удалить повторы в массиве без сортировки, при этом нужно получить новый массив(без повторов) и его длину( это нужно мне дальше знать)
пробовал вот так(2 способами но не один не считает правильно почему-то)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int* massive=new int[total_elemens]
vector<int> vec(massive, massive + total_elemens);  // помещаем в вектор
            vector<int> ::iterator it; // итератор
            it = unique(vec.begin(), vec.end()); // удаляем повторяющиеся элементы
            vec.resize(it - vec.begin());
            total_elemens = vec.size();
 
            int Numb=0;
            for (size_t i = 0; i<vec.size(); ++i)
            {
                Numb += std::count(vec.begin(), vec.end(), vec[i]) - 1;
                vec.erase(std::remove(vec.begin() + 1, vec.end(), massive[i]), vec.end());
            }
            if (Numb>0)
            {
                cout<<"Найденные дубликаты (" + Numb + ") были удалены";
            }
Добавлено через 9 часов 20 минут
есть идеи?,я конечно могу написать проверку в лоб, но на каждом шаге сравнивать 100 элементов, считать количество уникальных элементов, затем выделять память и таким же циклом заполнять новый массив непродуктивно,как по мне
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2014, 09:54     Удалить повторы в элементах массива
Посмотрите здесь:

C++ если массив не является знакочередующимся,то удалить из массива все положительные числа,в противном случае-удалить отрицательные элементы.после удален
C++ подсчитайте, сколько раз встречается каждая цифра в элементах двумерного массива
Удалить из массива целых чисел все нули. Сформировать два новых массива. В первый переписать все элементы данного массива с четными номерами, во второ C++
Удалить повторы в списке l3 C++
C++ C++ Повторы в цикле
C++ Мусор в элементах массива при передаче в функцию
C++ Подсчитать количество пар массива, не учитывая повторы
Найти все цифры в элементах одномерного массива и подсчитать сколько раз встречается каждая C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 00:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru