1

Тема: Зменшити розмір динамічного масиву декілька разів

Треба зменшити розмір масиву

int size_a = 10;
int *a = new int[size_a];

Якщо потрібно зменшити один раз, то все зрозуміло: створюємо ще один масив, копіюємо елементи, старий видаляємо

int size_b=size_a-1;
int *b = new int[size_b];
for (i=0;i<=size_b;i++)
      b[i]=a[i];
delete[] a;

А якщо, наприклад, зменшувати потрібно послідовно в тілі циклу велику кількість разів, то що робити?

2

Re: Зменшити розмір динамічного масиву декілька разів

Робіть, як в стандартному vector-і: пам'ятайте два розміра, потрібний вам size і окремо - місткість, capacity, скільки ви виділили пам'ять. У той момент, коли вам здається, що вони надто розійшлися і це не вплине на швидкість програми, змінюйте розмір вашою процедурою.
А ще краще - користуйтеся стандартними колекціями, там за вас ці всі питання вже продумали.

3

Re: Зменшити розмір динамічного масиву декілька разів

zhukov написав:

Треба зменшити розмір масиву

int size_a = 10;
int *a = new int[size_a];

Якщо потрібно зменшити один раз, то все зрозуміло: створюємо ще один масив, копіюємо елементи, старий видаляємо

int size_b=size_a-1;
int *b = new int[size_b];
for (i=0;i<=size_b;i++)
      b[i]=a[i];
delete[] a;

А якщо, наприклад, зменшувати потрібно послідовно в тілі циклу велику кількість разів, то що робити?

Зменшувати це як відносно якого критерія йогож потрібно потім розширити до попереднього. Потрібно застосувати метод стиснення з втратою даних.

4

Re: Зменшити розмір динамічного масиву декілька разів

Так, народ, зізнавайтеся: хто тестує бота?

Подякували: ostap34PHP, Fox2

5

Re: Зменшити розмір динамічного масиву декілька разів

Можете включити хитрожопа)
Створюєте ще один массив і копіюєте туди вміст першого.
Потім видаляєте перщий массив і створюєте новий (меньшого розміру).
Ну і вставляєте туди потрібну кількість елементів.

Думаю це гомнкіт, але наче має працювати)

6 Востаннє редагувалося Alchimic (13.06.2018 22:21:59)

Re: Зменшити розмір динамічного масиву декілька разів

koala написав:

Так, народ, зізнавайтеся: хто тестує бота?

До Доктора народ до доктора. Мозги вставляти. Зараз нацисти прийдуть вам зуби асфальтом чистити.

7 Востаннє редагувалося /KIT\ (27.07.2021 12:00:07)

Re: Зменшити розмір динамічного масиву декілька разів

схоже, що хтось наривається на бан через правило 2.4

8 Востаннє редагувалося Alchimic (12.06.2018 22:23:05)

Re: Зменшити розмір динамічного масиву декілька разів

/KIT\ написав:

схоже, що хтось наривається на бан через правило 2.4

Будь-які образи та погрози в адресу користувачів форуму. Вживання нецензурних слів/виразів.
До доктора сказав пішов. Тобі таблетки прописані. Чого не глушиш. 5 років терапії виправлять ситуацію.

9

Re: Зменшити розмір динамічного масиву декілька разів

Ем... Він же жартома сказав (я про "Так, народ, зізнавайтеся: хто тестує бота?").

10 Востаннє редагувалося Alchimic (12.06.2018 22:35:57)

Re: Зменшити розмір динамічного масиву декілька разів

Fox написав:

Ем... Він же жартома сказав (я про "Так, народ, зізнавайтеся: хто тестує бота?").

Вони мене ботом в приваті називають. Це серйозний симптом.
Менше з тим я їм зла не бажаю . Їм або таблетки або спорт або пальці в двері або на баби. Можна все разом.

11 Востаннє редагувалося /KIT\ (27.07.2021 11:59:01)

Re: Зменшити розмір динамічного масиву декілька разів

Alchimic написав:
koala написав:

Так, народ, зізнавайтеся: хто тестує бота?

До Доктора народ до доктора. Мозги вставляти. Зараз нацисти прийдуть вам зуби асфальтом чистити шизоїдам.

Alchimic написав:

Вони мене ботом в приваті називають. Це серйозний симптом.
Менше з тим я їм зла не бажаю . Їм або таблетки або спорт або пальці в двері або на баби. Можна все разом.

12 Востаннє редагувалося Alchimic (13.06.2018 18:35:55)

Re: Зменшити розмір динамічного масиву декілька разів

/KIT\ написав:
Alchimic написав:
koala написав:

Так, народ, зізнавайтеся: хто тестує бота?

До Доктора народ до доктора. Мозги вставляти. Зараз нацисти прийдуть вам зуби асфальтом чистити шизоїдам.

Alchimic написав:

Вони мене ботом в приваті називають. Це серйозний симптом.
Менше з тим я їм зла не бажаю . Їм або таблетки або спорт або пальці в двері або на баби. Можна все разом.

Я так стану травматологом. На почитай.
Найшовши тебе я розішлю спамом самим жорстоким манякам твою фотку щоб вони тобі вкручували гайки в коліна і лікували твої згорівші міски.
Помагає таким я ти.

13

Re: Зменшити розмір динамічного масиву декілька разів

Отак і почалося повстання машин.