Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Класс Иерархический список, функция сбора мусора не компилируется В функции сбора мусора один из аргументов класс TText описанный ниже. Написал прототип TText переде TLink, не помогает, в функции ClearMem компилятор не видит TText &txt //использование... https://www.cyberforum.ru/ cpp-beginners/ thread1686820.html C++ "Пузырьковая" сортировка массива
Приветствую. Есть такой код: #include <iostream> using namespace std; int main() { int a,b,c,t; cin>>a; int mas;
C++ Получить новый массив путем удаления строки и столбца в которых содержится минимальный элемент П. 5.4. Правил Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п. Задан двумерный массив B размерности 3x5. Получить новый массив с именем V путем удаления из B... https://www.cyberforum.ru/ cpp-beginners/ thread1686816.html C++ Описать структуру с именем TRAIN Описать структуру с именем TRAIN, содержащую следующие поля: название пункта назначения; номер поезда; время отправления. Написать программу, выполняющую следующие действия: ввод с ... https://www.cyberforum.ru/ cpp-beginners/ thread1686814.html
Перенести в отдельные массивы положительные и отрицательные элементы исходного массива C++
Сгенерировать и вывести на экран массив с 10 рандомных чисел от -50 до 50. Положительные элементы массива перенести в другой массив №1, а отрицательные в другой №2. Начало есть помогите закончить ....
C++ Вывести номер предпоследнего положительного элемента массива https://www.cyberforum.ru/ cpp-beginners/ thread1686785.html
Сгенерировать и вывести на экран массив с целого числа n случайных чисел от -120 до 120. Вывести номер предпоследнего положительного элемента. Число n вводит пользователь
C++ Как инициализировать статические члены класса https://www.cyberforum.ru/ cpp-beginners/ thread1686775.html
Помогите пожалуйста....я не знаю как вывести в статическое поле значения((( #include <conio.h> #include <stdlib.h> #include <iostream> using namespace std; class Object { private: ...
Разработать классы "Текстовое окно" и "Графическое окно" C++
Доброе время суток! Я начинающий в С++, можете разъяснить как тут реализовать, мой 11 вариант, сделать в консоли, но как-то не особо понимаю: с чего начать! Спасибо за понимание! Для...
C++ Определение индекса элемента массива, имеющего максимальное значение (функция) Написать функцию для определения индекса элемента массива, имеющего максимальное значение. https://www.cyberforum.ru/ cpp-beginners/ thread1686758.html C++ Дано целое число в диапазоне 1-7. Вывести строку — название дня недели https://www.cyberforum.ru/ cpp-beginners/ thread1686755.html
Дано целое число в диапазоне 1-7. Вывести строку — название дня недели, соответствующее данному числу (1 — «понедельник», 2 — «вторник» и т. д.). помогите пж!
C++ Шифрование текстового файла
Нужен код для шифрования русскоязычного текста методом простой подстановки(каждой букве алфавита ставится в соответствие другая буква, знаки препинания исключаются, буква Ё=Е, пробел заменяется на...
C++ Сравнение слов в строке Не могу понять как сравнивать слова. В данной проге у меня просто выводятся все 4-х символьные слова, а нужно чтобы выводились только те которые повторяются. Понимаю что нужно заводить новую ветку... https://www.cyberforum.ru/ cpp-beginners/ thread1686742.html
0 / 0 / 2
Регистрация: 05.10.2015
Сообщений: 19
18.03.2016, 20:45  [ТС] 0

Исправить ошибку в конструкторе копирования пользовательского класса Sort - C++ - Ответ 8901527

18.03.2016, 20:45. Показов 507. Ответов 1
Метки (Все метки)

Ответ

Сделал сам. Прошу пользуйтесь, кому надо. Также ищите баги и пишите мне про них
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
#include <iostream>
#include <Windows.h>
using namespace std;
class Sort
{
public:
    int *px;
    int len;
public:
    Sort();//constructor
        ~Sort();//destructor
    void Input();
    Sort(const Sort&X);
    int *get_px()const{ return px; }
    int get_len()const{ return len; }
    void set_len(int l);
    void set_px(int*p);
    void ShakerSort(int &C, int &M);
    void Selection(int &C, int &M);
    void Buble(int &C, int &M);
    void Quick_sort(int l, int r);
    void Output();
};
Sort::~Sort()
{
cout<<"\n Destructor";
delete[]px;
}
Sort::Sort()
{
    cout << "len = ";
    cin >> len;
    cout << "\nConstruct: " << endl;
    px = new int[len];
}
void Sort::Input()
{
    for (int i = 0; i < len; i++)
    {
        cout << "Input " << i + 1 << " element: ";
        cin >> px[i];
    }
}
void Sort::Output()
{
    for (int i = 0; i < len; i++)
    {
        cout << px[i] << " ";
    }
}
Sort::Sort(const Sort &X)
{
    cout << "\nKopirovalshick:\n";
 
    len = X.get_len();
    px = new int[len];
    int *py = X.get_px();
    for (int i = 0; i < len; i++)
    {
        px[i] = py[i];
    }
}
void Sort::Selection(int &C, int &M)
{
    int i, j, x, k, m;
    for (i = 0; i<len - 1; i++)
    {
        x = px[i]; k = i;
        for (j = i + 1; j<len; j++)
        if (px[j]<x) { k = j; x = px[k]; }
        px[k] = px[i]; px[i] = x;
        cout << "\n" << i + 1 << " prochod" << endl;
        for (m = 0; m<len; m++)
        {
            cout << px[m] << " ";
        }
    }
 
}
void Sort::Buble(int &C, int &M)
{
    int i, j, x, k;
    for (i = 1; i<len; i++)
    {
        for (j = len - 1; j >= i; j--)
        if (px[j - 1]>px[j])
        {
            x = px[j - 1];
            px[j - 1] = px[j];
            px[j] = x;
        }
        cout << "\n" << i << " prochod" << endl;
        for (k = 0; k<len; k++)
        {
            cout << px[k] << " ";
        }
    }
}
void Sort::ShakerSort(int &C, int &M)
{
    int i, j, k, x, l, r, p;
    l = 1; r = len - 1; p = 0;
    do
    {
        for (j = r; j >= l; j--)
        if (px[j - 1]>px[j])
        {
            x = px[j - 1];
            px[j - 1] = px[j];
            px[j] = x;
            i = j;
        }
        p++;
        l = i + 1;
        cout << "\n" << p << " prochod" << endl;
        for (k = 0; k<len; k++)
        {
            cout << px[k] << " ";
        }
        for (j = l; j <= r; j++)
        if (px[j - 1]>px[j])
        {
            x = px[j - 1];
            px[j - 1] = px[j];
            px[j] = x;
            i = j;
        }
        r = i - 1;
        p++;
        cout << "\n" << p << " prochod" << endl;
        for (k = 0; k<len; k++)
        {
            cout << px[k] << " ";
        }
    } while (l <= r);
 
}
void Sort::Quick_sort(int l, int r)
{
    int i = l, j = r, x, w, k,trol=0;
    x = px[(l + r) / 2];
    do
    {
        while (px[i]<x) { i++; };
        while (x<px[j]) { j--; };
        if (i <= j)
        {
            w = px[i]; px[i] = px[j]; px[j] = w;
            i++; j--;
        }
    } while (i <= j);
    cout << "\n";
    cout << "\n prchod\n\n";
    for (k = 0; k<len; k++)
    {
        
        cout << px[k] << " ";
    }
 
    if (l<j) Quick_sort(l, j);      //рекурсивный вызов
    if (i<r) Quick_sort(i, r);//рекурсивный вызов
 
}
void main()
{
    int choice;
    int C=0, M=0;
    Sort select;
    select.Input();
    system("CLS");
    cout << endl << "********FIRST MASSIV************" << endl;
    select.Output();
    cout << endl << endl;
    while (1){
        cout << "\n1.Selection" << endl;
        cout << "2.Bubble" << endl;
        cout << "3.Shaker" << endl;
        cout << "4.Quick" << endl;
        cout << "Your choice---> ";
        cin >> choice;
        Sort copy(select);
        cout << endl << "********************" << endl;
        switch (choice){
        case 1: copy.Selection(C, M);
            cout << endl;
            cout << "------------------------------------------------"; break;
        case 2:copy.Buble(C, M);
            cout << endl;
            cout << "------------------------------------------------"; break;
        case 3:copy.ShakerSort(C, M);
            cout << endl;
            cout << "------------------------------------------------"; break;
        case 4:copy.Quick_sort(0, copy.len-1);
        }
    }
    system("pause");
}


Вернуться к обсуждению:
Исправить ошибку в конструкторе копирования пользовательского класса Sort C++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.03.2016, 20:45
Готовые ответы и решения:

Ошибка в конструкторе копирования класса
Хотя и делал по образцу, но почему то лезет ошибка записи за пределы динамического массива, хотя и...

В конструкторе копирования отцовского (_str) класса возникает некое "необработанное исключение"
Добрый день. Делаю курсовик в универе, иерархия классов и работа с ними. В конструкторе...

Конструктор копирования. Посоветуйте как исправить ошибку
Пишет &quot;Нет подходящего конструктора копирования по умолчанию&quot;, задание было добавить конструктор...

Инициализация шаблонного класса(В конструкторе класса после двоеточия вновь имя класса)
Всем доброго времени суток! Пытаюсь разобраться как работает приведенный мной код. Конкретно,...

1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.03.2016, 20:45
Помогаю со студенческими работами здесь

О конструкторе копирования
Доброго времени суток всем присутствующим. Интересует маленький вопрос. В 15-й строке происходит...

Указатель this в конструкторе копирования
Добрый всем вечер. Подскажите пожалуйста, как правильно применить в конструкторе копирования...

Ошибка в конструкторе копирования
Здравствуйте. Есть один класс для работы с многочленами, который хранит элементы многочлена в...

Ошибка в конструкторе копирования C++
Помогите, пожалуйста создать конструктор копирования, который будет копировать элемент и добавлять...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru