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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удаление [i][j] элемента из вектора типа string http://www.cyberforum.ru/cpp-beginners/thread1189396.html
Добрый вечер! Пишу курсовую на тему "Консольный текстовый редактор". На деле же я считываю построчно из файла в вектор типа string. Одна из функций - удаление выделенных элементов. Всеми...
C++ Добавление элементов в сортированный двусвязный список Подскажите, каким способом лучше всего добавлять элемент в список, чтобы он сразу вставал на нужное место(элемент имеет имя, а список должен идти по возрастанию(стандартная сортировка слов))? http://www.cyberforum.ru/cpp-beginners/thread1189384.html
C++ работа с текстом
помогите решить задачу на с++. Дан текст. Выяснить, является ли он числом. отрицательные числа содержат в начале знак минус
не работает strncmp - нет доступа к памяти C++
после того, как принимается первое значение symbol выбрасывается ошибка Unhandled exception at 0x5c6cf7e0 in lala 3 1.exe: 0xC0000005: Access violation reading location 0x011da000. почему нет...
C++ Ошибка "template argument 1 is invalid" http://www.cyberforum.ru/cpp-beginners/thread1189369.html
Приветствую! Слабое знание английского не помогло мне найти ответа на stackoverflow, поэтому надеюсь, что кто-нибудь может помочь :) собсно код: ошибка - 20 строка #if !defined(_TWYKLAD_H)...
C++ Номера строк с одинаковыми суммами Здравствуйте! Подскажите, пожалуйста, код для выведения номеров всех строк с одинаковыми суммами и их суммы (в матрице). Например, дана матрица: 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 6 7 8 9 10 1 2 3... подробнее

Показать сообщение отдельно
Vlad_
7 / 7 / 0
Регистрация: 07.09.2012
Сообщений: 178

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

27.05.2014, 09:54. Просмотров 296. Ответов 0
Метки (Все метки)

Идея состоим в том что бы удалить повторы в массиве без сортировки, при этом нужно получить новый массив(без повторов) и его длину( это нужно мне дальше знать)
пробовал вот так(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 элементов, считать количество уникальных элементов, затем выделять память и таким же циклом заполнять новый массив непродуктивно,как по мне
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru