Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
artur4ek94
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 107
#1

Создать класс для реализации динамического массива

21.02.2015, 00:22. Просмотров 859. Ответов 1
Метки нет (Все метки)

Доброго времени суток!
Помогите создать класс который реализует динамический массив(с динамическим выделением памяти и перевыделением), без использования std::vector и std::list. И методы добавления элемента в конец массива и метод вывода массива на экран.
Помогите пожалуйста!

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2015, 00:22
Ответы с готовыми решениями:

Создать класс динамического массива
Задание заключается в следущем: Создать динамический класс для выполнения...

Создать класс для реализации комплексных чисел
Класс: Комплексное число, pr принимает значение в зависимости от представления...

Создать класс для реализации комплексных чисел в алгебраической форме
Создать класс для реализации комплексных чисел в алгебраической форме.Используя...

Создать класс для реализации комплексных чисел в алгебраической форме
Создать класс для реализации комплексных чисел в алгебраической форме....

Класс для двумерного динамического массива
Вот написал код для двумерного динамического массива с перегруженым оператором=...

1
19dmitry
33 / 33 / 22
Регистрация: 18.01.2014
Сообщений: 137
22.02.2015, 21:56 #2
Лучший ответ Сообщение было отмечено artur4ek94 как решение

Решение

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
#include<iostream>
#include<iomanip>
using namespace std;
 
const int N=4;
const int M=5;
const int K=2;
 
 
class Date
{
private:
    int** arr;//создаём массив указателей
public:
    void indate(int arr2[K][M], int arr3[N][M])
    {
        arr=new int* [N];//выделяем память под строки массива
 
        for(int i=0; i<N; i++)
            arr[i]=new int[M];//выделяем память под столбцы массива
 
        //Теперь работаем, как с обычным массивом
        cout << "Матрица размерностью 4х5: " << endl;
        for(int i=0; i<N; i++)
        {
            for(int j=0; j<M; j++)
            {
                arr[i][j]=rand()%10;//заполняем массив случайными числами от 0 до 10
                cout << arr[i][j] << "  ";
            }
            cout << endl;
        }
 
        //А этот массив мы должны будем добавить к первому 
        cout << "\nА это, массив с статическим выделением памяти, \nи его данные необходимо добавить в первый массив: \n" << endl;
        for(int i=0; i<K; i++)
        {
            for(int j=0; j<M; j++)
            {
                arr2[i][j]=rand()%100;
                cout << setw(3) << arr2[i][j] << "  ";
            }
            cout << endl;
        }
    }
 
    void copy_arr(int arr3[N][M])//так как для добавления новых строк в нашем массиве не хватает памяти, 
    {                            //то мы вначале копируем содержимое массива в другой временный массив
        for(int i=0; i<N; i++)
        {
            for(int j=0; j<M; j++)
            {
                arr3[i][j]=arr[i][j];
            }
        }
 
        cout << "\nСкопированный массив: " << endl;
        for(int i=0; i<N; i++)
        {
            for(int j=0; j<M; j++)
                cout << arr3[i][j] << "  ";
            cout << endl;
        }
 
        //удаляем старый массив
        for(int i=0; i<N-1; i++)
            delete[]arr[i];
        delete[]arr;
    }
 
    void new_arr(int arr2[K][M], int arr3[N][M])
    {
        arr=new int*[N+K]; //и заново выделяем нужный нам объём памяти для того чтобы вместить все строки
 
        for(int i=0; i<N+K; i++)
            arr[i]=new int[M];
 
        for(int i=0; i<N; i++)//теперь обратно возвращаем в первый массив элементы, хранящиеся во временном массиве
            for(int j=0; j<M; j++)
                arr[i][j]=arr3[i][j];
 
        int k=0;
        for(int i=N; i<N+K; i++)//а потом добавляем строки из второго массива
        {
            for(int j=0; j<M; j++)
                arr[i][j]=arr2[k][j];
            k++;
        }
 
        cout << "\nНовый массив: " << endl;//отображаем готовый массив
        for(int i=0; i<N+K; i++)
        {
            for(int j=0; j<M; j++)
                cout << setw(2) << arr[i][j] << "  ";
            cout << endl;
        }
    }
};
 
int main()
{
    setlocale (LC_ALL, "RUSSIAN");
    Date date1;
    int mas2[K][M];
    int mas3[N][M];
    date1.indate(mas2, mas3); //теперь добавим в созданную нами матрицу ещё две строки, 
                              //но для этого нам понадобится перевыделение память
 
    date1.copy_arr(mas3);     //поэтому вначале скопируем данные, созданного нами массива в временный массив
                              //удаляем старый массив
 
    date1.new_arr(mas2, mas3); //затем выделим заново память
                               //и вернём скопированные наши данные обратно, добавив к ним ещё две строки
    
    
    cout << endl;
    system ("PAUSE");
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2015, 21:56

Описать класс для реализации двумерного массива
Хочу сделать класс, который будет описывать поле размером 5х3. Для этого...

Класс динамического массива для различных типов
Можно ли создать класс динамического массива, чтоб при создании массива можно...

Создать класс для реализации комплексных чисел в алгебраической форме. Используя функции с объектом в качестве аргумента
Создать класс для реализации комплексных чисел в алгебраической форме....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru