Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 08.10.2013
Сообщений: 101
1

Реализация контейнера - динамического массива

17.11.2015, 22:20. Показов 2509. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Возникла проблема с программой.
Сначала ввожу 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
template <class Type>
class vector
{
      Type *arr;                   //Указатель на массив
    int real, max;                  //Реальный и максимальный размер массива
 
public:
    vector(int n=0)                      //Конструктор
    {
        real = n;
        max = n+1;
        arr = new Type[max];
    }
    ~vector()                            //Деструктор
    {
        delete [] arr;
    }
void resize(unsigned int n)                   //Изменение размера массива
    {
        if(n<=real)
            real = n;
        else if(n<=max)
        {
            for(int i=0;i<n;i++)
            {
                arr[i] = Type();
            }
                real = n;
 
        }
        else
        {
            Type *a;
            a = new Type[n+1];
            for(int i=0;i<n;i++)
            {
                a[i] = arr[i];
            }
            real = n;
            max = n+1;
            delete [] arr;
            arr = a;
        }
    }
 Type &operator[](unsigned int id) { return arr[id];}      //перегружаю "[]"
};
 
 
int main()
{
 
    int n,m;
    cin>>n>>m;
    vector<vector<int> >matrix(n);
    for(int i=0;i<n;i++)
       matrix[i].resize(m);
 
    for(int i=0;i<m;i++)
        for(int j=0;j<m;j++)
        matrix[i][j] = 1;
 
for(int i=0;i<m;i++)
    for(int j=0;j<m;j++)
    cout<<matrix[i][j]<<endl;
    return 0;
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.11.2015, 22:20
Ответы с готовыми решениями:

Вновь итератор. реализация для динамического массива
Реализовываю по заданию контейнер-шаблон растущий массив. В принципе, ничего сложно и непонятного,...

Реализация конструктора копирования для двумерного динамического массива
Практически реализовал, не понимаю, почему не получается... #include &lt;iostream&gt; #include...

Реализация контейнера unordered_map
Привет. Не могу найти реализацию этого контейнера. Помогите ссылкой или кодом.

Реализация контейнера типа мультимножество
Подскажите пожалуйста: как реализовать контейнер типа &quot;мультимножество&quot;, без использования STL?

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

Реализация контейнера по типу map
Необходимо создать пользовательский класс по типу map, для реализации &quot;словаря&quot;. Можете помочь с...

Реализация примитивного STL совместимого контейнера
Как то застрял на этом. Как правильно объявить все typedef для итератора? Нужен минимальный...

Реализация стека наследованием реализации контейнера
Имеется иерархия классов, во главе которой класс-интерфейс. Нужно создать стек для хранения...

Реализация контейнера идентичного std::vector по Страуструпу
При попытке скомпилировать код появляются ошибки, хотя делаю вроде как пишет Бьярне. Компилятор VSE...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru