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

Объединение двух списков в один без повтора элементов (С++) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Построить матрицу по образцу http://www.cyberforum.ru/cpp-beginners/thread831736.html
помоги пожалуйста ,а то я совсем не разбираюсь
C++ выделение памяти Здравствуйте, помогите пожалуйста исправить ошибку, это лишь малая часть кода. В задании: поле name должно быть динамическим: char *name. Конструктор выделяет под него память, деструктор -... http://www.cyberforum.ru/cpp-beginners/thread831730.html
C++ Поиск в файле и сортировка
Задача : Предусмотреть поиск животных по возрасту,кличке. Отсортировать в файле животных по породе. Проблема : Немогу ни как найти слова в файле...и вывод породы тоже не в лучшем состоянии......
C++ Сортировка чисел с использованием файлов
Доброго времени суток. Не первый день уже пытаюсь завершить задание, да вот работа с файлами меня подводит. Суть задания такова: Ввести числа (я для этого использовал генератор) и записать их в...
C++ Написать программу, которая находит в массиве значения, повторяющиеся два и более раз http://www.cyberforum.ru/cpp-beginners/thread831700.html
Помогите решить задачу. Написать программу, которая находит в массиве значения, повторяющиеся два и более раз, и показывает их на экран. Массив состоит из 10 элементов, заполненный...
C++ сложение двух двоичных чисел Помогите разобраться со сложением двоичных чисел. Напишите алгоритм сложения двух двоичных чисел! подробнее

Показать сообщение отдельно
romka_f
1 / 1 / 0
Регистрация: 08.04.2013
Сообщений: 15
09.04.2013, 22:17  [ТС]
всё равно...
error: 'void operator+= (List&)' must take exactly two arguments
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#include <iostream>
using namespace std;
// Klase Elem - saraksta elements
class Elem
{
public:
    int num;
    Elem *next;
    Elem (int n) { num = n; next = NULL; };
};
// Klase List - saistГ®ts vienvirziena saraksts
class List
{
protected:
    Elem *first, *last;
public:
    Elem *current;
public:
    List () { first = last = current = NULL; };
    void add_element (int n); // pievieno beigГўs
    void delete_element (); // izmet no sГўkuma
    int is_empty () { return (first == NULL); };
    void start () { current = first; };
    int end () { return (current == NULL); };
    void next(){if (!end())current = current -> next;};
    void print();
    void operator+= (List &list);
};
 
int main()
{
    List l;
    List l2;
    List l3;
    int k;
    cout << "Ievadi 1. saraksta elementu (0,lai beigtu):\n";
    cin >> k;
    while (k!=0)
    {
        l.add_element (k);
        cout << "Ievadi 1. saraksta elementu (0, lai beigtu):\n";
        cin >> k;
    };
 
    cout << "Ievadi 2. saraksta elementu (0,lai beigtu):\n";
    cin >> k;
    while (k!=0)
    {
        l2.add_element (k);
        cout << "Ievadi 2. saraksta elementu (0, lai beigtu):\n";
        cin >> k;
    };
 
    //izvadam 1. un 2. saraksta elementus
    cout << "1. saraksts: ";
    l.print();
 
    cout << endl;
 
    cout << "2. saraksts: ";
    l2.print();
 
    l+=l2;
 
    cout << endl;
    cout << "3. saraksts: ";
    l.print();
 
    while (!l.is_empty())
    {
        l.delete_element ();
    };
 
    return 0;
};
 
 
void List::add_element (int n)
{ // maina current vçrtîbu, lai râdîtu uz jauno elementu
    Elem *p = new Elem (n);
    if (first == NULL) first = last = p;
    else last = last -> next = p;
    current =p;
};
 
void List::delete_element ()
{ // saglabâ current vçrtîbu (nomaina uz sâkumu,ja râdîja uz izmetamo)
    Elem *p = first;
    if(!is_empty())
    {
        if (current == first) current = first-> next;
        first = first -> next;
        delete p;
        if(is_empty())last = NULL;
    }
};
 
void List::print()
{
    for(start(); !end(); next())
        cout << current->num << ' ';
    cout << endl;
}
 
 
void operator+= (List &list)
{
    bool flag;
    Elem *tmp = list.first;
 
    while(tmp != NULL)
    {
        Elem *tmp1 = first;
        flag = false;
        while(tmp1 -> next!= NULL)
        {
            if(tmp1 -> num == tmp -> num)
            {
                flag = true;
                break;
            }
 
            tmp1 = tmp1 -> next;
        }
 
        if(flag == false)
        {
            if(tmp1 -> num != tmp -> num)
            {
                Elem *cmp = new Elem;
                cmp -> num = tmp -> num;
                tmp1 -> next = cmp;
                cmp -> next = NULL;
            }
        }
 
        tmp = tmp -> next;
    }
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru