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

Исключить из массива все повторяющиеся элементы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Метод Карацубы http://www.cyberforum.ru/cpp-beginners/thread1176992.html
Помогите реализовать метод Карабуцы для длинных чисел. У меня получилось сделать его только для более коротких чисел. Ведь если допустим взять числа длиной в 10000 символов, то проделывать деление числа на две части и все остальные действия придется несколько раз. Но я совершенно не сильна в рекурсии. Помогите пожалуйста добавить ее. #include <iostream> #include <vector> #include <algorithm>...
C++ Перегрузка оператора = Есть некий класс. И два класса-наследника. Надо перегрузить оператор =, к тому же в дочерних классах вызывать перегрузку в базовом классе. Ошибка кода в том, что нельзя перегрузить оператор в классе, где есть чистая виртуальная функция. class CDyplSpecialist { protected: string name; string surname; string spec; public: CDyplSpecialist() ; http://www.cyberforum.ru/cpp-beginners/thread1176984.html
Как визуализировать программу C++
Есть полностью готовая консольная программа,которая решает СЛАУ.Как мне визуализировать ее?Как например сделать,чтобы я мышкой тыкал на какое-то поле и вводил значения коэффициентов уравнений?
Вычислить время выполнения C++
Помогите пожалуйста вычислить время выполнения данной программы. Уже что только не вставляла, но программа просто не выводит время, ошибок тоже никаких не выдает. Подскажи, что куда вставлять. Сам код без времени: #include <iostream> #include <vector> #include <algorithm> #include <string> using namespace std; vector <int> add( const vector<int>& a, const vector<int>& b) {
C++ Sdl 2.0 Dev-cpp http://www.cyberforum.ru/cpp-beginners/thread1176922.html
Под спойлером лог компилятора, по сути не может найти winapifamily.h, где его брать, куда пихать итд, сдл поставил полностью 25 0 E:\sdl2\x86_64-w64-mingw32\include\SDL2\SDL_config.h In file included from E:\sdl2\x86_64-w64-mingw32\include/SDL2/SDL_config.h 31 E:\sdl2\x86_64-w64-mingw32\include\SDL2\SDL_stdinc.h from E:\sdl2\x86_64-w64-mingw32\include/SDL2/SDL_stdinc.h...
C++ Открытие Ini файла Есть файл в формате ini: bank1=Belarusbank currency1=USD buy1=3050 sell1=3055 bank2=Belinvestbank buy2=3045 sell2=3053 currency2=USD подробнее

Показать сообщение отдельно
Vergil
42 / 36 / 14
Регистрация: 11.11.2009
Сообщений: 238
17.05.2014, 06:43     Исключить из массива все повторяющиеся элементы
virtuos553, Это если он вдруг решит осваивать их(не сейчас, так потом). Для того, я и прокомментировал.
Кстати, вот доделанная прога. 0 теперь будет на своем месте.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <iostream>
//---------------------------------------------------------------------------
 
#pragma argsused
 
using namespace std;
 
int main()
{
 
    int n,i,k,p,j,chet,i1;
    p=0;
    k=0;
    cout<<"vvedite kolvo elementov massiva"<<"\n";
    cin>>n;
    int* mas= new int [n];//заводим массив для первоначального массива который будем считывать
    for(i=0;i<n;i++)//заполняем его
        {
            
        cin>>mas[i];
        if (mas[i]<=0)
        {mas[i]--;}
    }
 
 
    int *new_mas=new int [n];//массив в котором будут хранится элементы без повтора
    for(i=0;i<n;i++)
        new_mas[i]=0;
 
    for(i=0;i<n;i++)//берем каждый элемент массива и проверяем был ли он до него в массиввке, если его не было, тогда записываем его в наш новый массив, если был , то пропускаем.
    {
        for(j=0;j<i;j++)
        {
            if(mas[i]==new_mas[j])
            k=1;//счетчик повтора элемента
        }
 
        if(k==0)
            new_mas[p]=mas[i];
        p++;
        k=0;
    }
 
    for(i=0;i<n;i++)
    {   if (new_mas[i]!=0) {
 
        
        if(new_mas[i]<0)
        {cout<<new_mas[i]+1<<" ";}
        else
        {cout<<new_mas[i]<<" ";} }
 
    }
    cout<<"\n";
 
    system("pause");
 
}
а вот альтернативный вариант использующий только один массив.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <iostream>
//---------------------------------------------------------------------------
 
#pragma argsused
 
using namespace std;
 
int main()
{  int n,i,k,p,j,chet,i1, tmp;
    p=0;
    k=1;
    cout<<"vvedite kolvo elementov massiva"<<"\n";
    cin>>n;
    int* mas= new int [n];//заводим массив для первоначального массива который будем считывать
    for(i=0;i<n;i++)//заполняем его
        { tmp=0;
    cin>>mas[i];
    if (i!=0) {    
    for (int j = 0; j < k; j++) {
    if(mas[i]==mas[j]){tmp=1;}
    if (j==k-1&&tmp==0) {
     mas[k]=mas[i];k++;}}}}
 
    for(i=0;i<k;i++)
    { cout<<mas[i]<<" "; }
    cout<<"\n";
    system("pause");
    }
 
Текущее время: 22:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru