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

Добавление элемента в начало динамического массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Функция, формирующая одномерный массив http://www.cyberforum.ru/cpp-beginners/thread536375.html
Написать функцию формирующую одномерный массив, состоящий из абсолютных значений минимальных элементов каждого столбца прямоугольной матрицы 1.написать пример обращения этой фунцкии
C++ Cоставить формулу дисперсии для массива чисел Есть массив arr. Нужно составить формулу для вычисления дисперсии. К сожалению в математике с этим не сталкивался, поэтому не имею представления как ее составлять, даже после прочтения теоретических ведомостей. http://www.cyberforum.ru/cpp-beginners/thread536364.html
Найти объем V, массу m и площадь S поверхности тела C++
Тело, имеет форму конуса с высотой h и радиусом основания R, изготовленное из материала плотности p. Найти объем V, массу m и площадь S поверхности тела.
C++ вычисления функции трудоемкости алгоритма
есть у меня некий алгоритм, в коментариях росписани к-чество операций for (int i = 0; i < n-1; i++) // 1 операція, n-1 проходів циклу { if (ar > ar) // 4 операції { k = false; // 1 операція break; } } // 3 операції
C++ определить количество вхождений в строку каждого из знаков, встречающихся в ней один или более раз http://www.cyberforum.ru/cpp-beginners/thread536353.html
Задание: определить количество вхождений в строку каждого из знаков, встречающихся в ней один или более раз Сам уже пытался ее написать, но ничего не выходит. Теперь вся надежда только на Вашу помощь. Существуют некоторые условия выполнения задания, поставленные преподавателем: 1. Нельзя использовать индексацию массива никаким образом 2. Нельзя вводить строку посимвольно, т.е., допустим...
C++ Сбалансированное дерево Всем привет!) Для учебной практики требуется решить задачу: Написать программу в С++, суть заключается в следующем, нужно на форме организовать ввод с клавиатуры, случайным образом и чтения из файла, в общем итоге должно получиться сбалансированное дерево. Если есть возможность, помогите!!! подробнее

Показать сообщение отдельно
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
03.04.2012, 02:07     Добавление элемента в начало динамического массива
Если хочешь сделать самостоятельно динамический массив с добавлениями, это вполне хорошее упражнение и, конечно имеет право на существование. Всё-таки не очень честно использовать вектора, не разобравшись как выделяется/удаляется память в простых динамических массивах. Так что не слушай советчиков. Контроль памяти это одна из важнейших вещей при программировании на C

Так вот эта память у тебя течёт. У тебя в коде это однозначно вызывает утечку
C++
1
2
3
4
5
6
7
8
9
10
11
12
int *temp=new int[size++];
                for (int i=0; i<size; i++)
                {
                    temp[i+1]=mas[i];
                }
               //сохранил старый mas в расширенном новом куске памяти, массиве
                // А после копирования данных в этот кусок
//ОБЯЗАТЕЛЬНО  освободи её из старого
                  delete[] mas;//!!!!!
                cout<<"Enter element: ";
                cin>>temp[0];
                mas=temp;
А вообще продвинутые менеджеры памяти выделяют кусок не по одному элементу, а с большим запасом на N элементов. Подумай над этим.
например
C++
1
2
3
const int CHUNK_SIZE=50;
size+=CHUNK_SIZE;
int *temp=new int[size];
Я где-то слышал, что стандартные вектора используют какой-то хитрый алгоритм определения размера добавляемого куска. Они то ли с каждым разом в два раза больше добавляют, то ли ещё что
 
Текущее время: 23:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru