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

Создать класс с методом сортировки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Считывание символов и цифр с клавиатуры http://www.cyberforum.ru/cpp-beginners/thread1135275.html
Как сделать так, чтобы считывая строку программа заносила символы в один список, а цифры в другой. Например: ввожу в консоли 2+3-5= в списке list первом у меня будут 2 3 5 а во втором + - =
C++ В строке, состоящей и нулей и единиц, подсчитать количество символов в самой длинной группе Помогите, пожалуйста :help: http://www.cyberforum.ru/cpp-beginners/thread1135262.html
Нахождение основных значений оформить через функцию RESHENIE(), ввод данных и вывод на печать через функцию MAIN() C++
а помогите теперь эту задачку #include <iostream> int main() { int last = 0, next = 1; long sum = 1; for(; next < 1000; next += last){ last = next - last; sum += next; }
C++ Вставить в упорядоченный по неубыванию список элемент с заданным значением так, чтобы не нарушить упорядоченность
Кто сможет помочь с программкой. Вставить в упорядоченный по неубыванию список элемент с заданным значением так, чтобы не нарушить упорядоченность. на c++ с помощью очереди.
C++ Сортировки: пять методов на выбор в одной программе http://www.cyberforum.ru/cpp-beginners/thread1135240.html
Помогите написать програмку которая сортирует пьятьма методами на выбор 1) вставками 2) выбором 3) обменом (пузырьком) 4)быстрая сортировка 5) слиянием. В нете все ети методы есть, но связать в одну прогу у меня не получается. Наработки есть но на паскале а как оказалось теперь надо на С++
C++ Удалить из первой последовательности каждый символ, принадлежащий и второй Даны 2 символьные последовательности. Удалить из первой последовательности каждый символ, принадлежащий и второй последовательности.Распечатать заданные и образованную последовательности. То есть нужно удалить совместные символы. Мне на этом форуме написали программу но с ошибками помогите исправить. #include <iostream> #include <string> int main() { std::string txt("dfcc df"),... подробнее

Показать сообщение отдельно
Newchap
4 / 4 / 1
Регистрация: 17.09.2013
Сообщений: 179
09.04.2014, 18:46  [ТС]     Создать класс с методом сортировки
Dani, не подскажите, если требуется сделать эту сортировку, но чтобы она работала с массивом элементов другого класса, в чем ошибка моей реализации? Вернее, как здесь исправить ошибку unresolved externals ?

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
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <ctime> 
 
 
class element         // будущий класс элементов массива
{
public:
    ~element();
    int counter;
};
 
class array {
public:
 
    ~array();
    array(int n);
    void Setn(int _n) { n = _n; }    // _n - _ указывает на то, что переменная использованная после нее приватна
    void createsort()   // а также если есть _ переменная может использваться везде.
    {
        createarray(n);
        qs(b, 0, n - 1);
        proverka(b, n-1);
        for (int i = 0; i<n; ++i) cout << b[i].counter << ' ';
    }
 
private:
    element *b;
    int n;
 
    void swap(int a, int b) // адреса 
 
    {
        int c = a;
        a = b;
        b = c;
    }
 
    void compare(int a, int b)
    {
        if (b > a) swap(a, b);
    }
 
 
    void qs(element* s_arr, int first, int last)
    {
        int i = first, j = last, x = s_arr[(first + last) / 2].counter; //"опорный элемент"
 
        do {
            while (s_arr[i].counter < x) i++;
            while (s_arr[j].counter > x) j--;
 
            if (i <= j) {
                if (i < j) swap(s_arr[i].counter, s_arr[j].counter);
                i++;
                j--;
            }
        } while (i <= j);
 
        if (i < last)
            qs(s_arr, i, last);
        if (first < j)
            qs(s_arr, first, j);
    }
 
    void proverka(element*b,int n) {
        int p = 0;
        for (int i = 0; i < n; i++)
        {
            if (b[i].counter < b[i + 1].counter) { p = p + 1; }
        }
        if (p == n) { cout << "all good " << endl;  }
        else cout <<"mistake during qs ";
        
    }
 
    void createarray(int _n)
    {
     int n = _n;
        b = new element[n]; // Выделение памяти для массива
        for (int i = 0; i < n; i++) {
        b[i].counter = rand() % 100;
        cout << "Value of " << i << " element is " << b[i].counter << endl;
        }
    }
 
 
};
 
 
int main()
{
    srand(time(0));
    int n;
    cout << "Enter integer value: ";
    cin >> n;
    array mass(n);
    mass.Setn(n);
    mass.createsort();
    return 0;
}
 
Текущее время: 14:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru