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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
artur4ek94
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 105
#1

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

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

Доброго времени суток!
Помогите создать класс который реализует динамический массив(с динамическим выделением памяти и перевыделением), без использования std::vector и std::list. И методы добавления элемента в конец массива и метод вывода массива на экран.
Помогите пожалуйста!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2015, 00:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать класс для реализации динамического массива (C++):

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

Создать класс для реализации комплексных чисел - C++
Класс: Комплексное число, pr принимает значение в зависимости от представления числа: pr=1, алгебраическая, 0-тригонометрическая. ...

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

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

Класс для двумерного динамического массива - C++
Вот написал код для двумерного динамического массива с перегруженым оператором= и +. Собственно код работает в MS VS 2010, но меня...

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

1
19dmitry
33 / 33 / 13
Регистрация: 18.01.2014
Сообщений: 113
22.02.2015, 21:56 #2
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
Привет! Вот еще темы с ответами:

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

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

Создать функцию для создания динамического массива - C++
Как создать функцию в другом заголовочном файле, которая будет создавать двумерный динамический массив. входящие параметры такие (имя...

Написать класс для динамического массива с проверкой границ (что подразумевают под инициализацией?) - C++
Привет, народ, есть такое задание: 2. написать класс для динамического массива с проверкой границ( аналог std::vector ) +должны...


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

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

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