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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Построить матрицу по образцу http://www.cyberforum.ru/cpp-beginners/thread831736.html
помоги пожалуйста ,а то я совсем не разбираюсь
C++ выделение памяти Здравствуйте, помогите пожалуйста исправить ошибку, это лишь малая часть кода. В задании: поле name должно быть динамическим: char *name. Конструктор выделяет под него память, деструктор - освобождает. Мне нужна помощь в исправлении этой ошибки и в выделении/удалении памяти под name ( функции я напишу сам, просто помогите как правильно расписать, тоесть синтаксис ) . getName должен возвращать... http://www.cyberforum.ru/cpp-beginners/thread831730.html
C++ Поиск в файле и сортировка
Задача : Предусмотреть поиск животных по возрасту,кличке. Отсортировать в файле животных по породе. Проблема : Немогу ни как найти слова в файле...и вывод породы тоже не в лучшем состоянии... ////×åòâåðòàÿ ëàáàðàòîðíàÿ.//// #include <iostream> #include <string> #include <fstream> #include <stdio.h> #include <cstring> #include <windows.h> #include <winuser.h>
C++ Сортировка чисел с использованием файлов
Доброго времени суток. Не первый день уже пытаюсь завершить задание, да вот работа с файлами меня подводит. Суть задания такова: Ввести числа (я для этого использовал генератор) и записать их в файл. Реализовать две функции сортировки: пирамидальную и слиянием. Числа в функцию считать из файла, отсортировать, записать в файл (я сделал отдельный файл). #include <fstream> #include...
C++ Написать программу, которая находит в массиве значения, повторяющиеся два и более раз http://www.cyberforum.ru/cpp-beginners/thread831700.html
Помогите решить задачу. Написать программу, которая находит в массиве значения, повторяющиеся два и более раз, и показывает их на экран. Массив состоит из 10 элементов, заполненный пользователем с клавиатуры. p.s. Как объявить и заполнить массив - сложностей не вызывает. Интересен сам алгоритм нахождения одинаковых чисел.
C++ сложение двух двоичных чисел Помогите разобраться со сложением двоичных чисел. Напишите алгоритм сложения двух двоичных чисел! подробнее

Показать сообщение отдельно
romka_f
0 / 0 / 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;
    }
}
 
Текущее время: 14:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru