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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ wchar_t. Вместо буквы выводится число http://www.cyberforum.ru/cpp-beginners/thread932412.html
Почему такой результат? #include <iostream> int main() { wchar_t letter=L'Z'; std::cout << "letter = " << letter << std::endl; // letter = 90
C++ Архитектура программы. Правильно ли сделал? Собствено с архитектурой вроде определился. Хотелось бы конструктивной критики. Задача по сути следующая: - Считывать данные геометрических объектов из файла. - Вычислить некоторое число для двух геометрических объектов. Базовый класc для геометрических объектов имеет одну функцию которая возвращает число, плюс конструкторы деструкторы и т.д. class сGeomObj { http://www.cyberforum.ru/cpp-beginners/thread932408.html
C++ Проекты и солюшин
У меня такая проблема: как в солюшине связать два и больше проектов чтоб можно било использовать функцыонал одного проекта в другом. З. Ы. Если просто добавить проекты в солюшын то вызвать функцыи нельзя так как кидает ошыбку линковки
C++ Получение командой строки для процесса
Компилирую из под x86 всё здорово... запускаю на x64 - не может прочитать строку командную для процесса... Для 64 бит компилировать мне не нужно... нужно как то сделать, чтобы работала, скомпилированная из под 32... Что-то с readprocessmemory Последний пост http://forum.sysinternals.com/readprocessmemory-from-32bit-to-32bit-on-x64-fails_topic24543.html Хелп ) #include <windows.h> #include...
C++ вложенный класс http://www.cyberforum.ru/cpp-beginners/thread932359.html
Какие проблемы могут возникнуть в следующем объявлении вложенного класса? class Ribs { private: class Sauce { int soy; int sugar; public : Sauce (int s1, int s2) : soy ( s1 ), sugar ( s2 ) ( )
C++ Произвести действия со строкой матрицы Добрый день. Обращаюсь за помощью, т. к не знаю как правильно сделать в следующем случае: int a= {9,7,3,6,8,0,5,4,1, 2,4,8,3,0,1,6,0,7, 0,0,1,4,9,7,0,0,0, 1,8,0,2,6,3,0,0,0, 4,9,2,0,0,0,3,6,5, подробнее

Показать сообщение отдельно
Maxak
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 47
02.08.2013, 11:48     Удалить повторяющиеся элементы в отсортированнном массиве
пример такого массива I[]={0,1,3,3,3,5,6,8,10,10}
Т.е. я так понимаю, нужно сдигать все элементы при повторении влево, и записывать в инт количество таких сдвижек, что бы передать массив в буферный и освободить лишнюю память.
Что то туплю, и не могу понять как это "дешевле" сделать...На ум приходит только цикл в цикле....
может подскажите?

Добавлено через 16 минут
Пройтись один раз по массиву, переопределив все кроме одного пвоторяющихся чисел скажем -MAX_DBL
получить I[] ={0,1,-MAX_DBL,-MAX_DBL,3,5,6,8,-MAX_DBL,10}
И записать в новый массив все кроме -MAX_DBL...

Добавлено через 30 минут
Ну т.е. как то так:
У нас есть упорядоченный массив NewIn, Мы удаляем повторяющиеся элементы и записываем в NewInTemp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    
int NewM = M;
    double MAX_DBL = 666666666666666;
    for(int i=0; i<(M-2); i++)
    {       
        if(NewIn[i] == NewIn[i+1])
        {
            NewIn[i] = -MAX_DBL;
            NewM--; 
        }
    }
    
    double *NewInTemp = new double[NewM];
    int *NewOutTemp = new int[NewM];
 
    int j =0;
    NewInTemp[0] = NewIn[0];
    for(int i=0; i<NewM; i++)
    {                   
        while(NewIn[j]==-MAX_DBL)   j++;
        NewInTemp[i] = NewIn[j]; 
        j++;
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru