42 / 29 / 14
Регистрация: 09.06.2018
Сообщений: 147
|
|
1 | |
Как расширить динамический массив НЕ используя stl18.10.2018, 13:52. Показов 2419. Ответов 9
Метки нет (Все метки)
То есть создал я массив:
int *arr = new int[n] n-какое-то значение А дальше я хочу сделать массив arr длиной, n+5; или -5 без разницы, просто надо изменить длину. И желательно чтобы переменный хранящиеся в массиве остались в нём.
0
|
18.10.2018, 13:52 | |
Ответы с готовыми решениями:
9
Свой класс вектор. Как расширить динамический массив Расширить динамический массив Как можно расширить STL своим набором функций? Используя STL контейнер set заполнить массив |
2129 / 1212 / 503
Регистрация: 11.10.2018
Сообщений: 6,120
|
|
18.10.2018, 13:57 | 2 |
Сообщение было отмечено 3C_273 как решение
Решение
Ну как обычно. Создаете новый массив, переписываете туда данные со старого массива. Удаляете старый массив оператором delete []arr. - Кажется так, не помню точно или просто delete arr. Посмотрите примеры в Интернете.
1
|
42 / 29 / 14
Регистрация: 09.06.2018
Сообщений: 147
|
|
18.10.2018, 14:01 [ТС] | 3 |
FFPowerMan, Спасибо,я понял. А не знаете, можно ли в stl одной функцией это сделать
0
|
261 / 111 / 53
Регистрация: 22.01.2017
Сообщений: 448
|
|
18.10.2018, 14:02 | 4 |
del
1
|
Модератор
|
|
18.10.2018, 14:02 | 5 |
3C_273, ну создайте обёртку над динамическим массивом. В смысле, свой пользовательский класс
DynamicArray или Vector . Тут на форуме тысячи таких тем - просто потрудитесь страницу вниз колёсиком мыши пролистать.
0
|
42 / 29 / 14
Регистрация: 09.06.2018
Сообщений: 147
|
|
18.10.2018, 14:05 [ТС] | 6 |
n1b1ru, Спасибо за помощь
Добавлено через 2 минуты sourcerer, Ну это я могу, но я к олимпиаде готовлюсь и там будет некогда писать свой класс. И я ищу готовые функции
0
|
Заблокирован
|
||||||
18.10.2018, 14:06 | 7 | |||||
Если массив состоит из элементов, для которых не требуется вызывать конструкторы и деструкторы, то можно вот так:
0
|
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
|
|
19.10.2018, 01:46 | 9 |
разница есть. если размер массива A увеличиваете, создаёте массив B, копируете в него массив A и присваиваете указателю A значение B: A=B; если размер уменьшаете, просто изменяете значение n.
0
|
Вездепух
12798 / 6674 / 1796
Регистрация: 18.10.2014
Сообщений: 16,894
|
|
19.10.2018, 04:10 | 10 |
std::realloc с размером 0 не гарантирует освобождение памяти. Что именно делает realloc с размером 0 - определяется реализацией.
1
|
19.10.2018, 04:10 | |
19.10.2018, 04:10 | |
Помогаю со студенческими работами здесь
10
Модернизировать программу используя динамический массив Используя динамический массив, обработать элементы Можно ли инициализировать динамический массив не используя цикл? Вычислить объем конуса используя динамический массив Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |