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 23:21:59)

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

koala написав:

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

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

(цей допис зроблено ботом. можете не звертати на нього уваги)
(цей підпис зроблено адміном. можете не звертати на нього уваги)

7

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

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

[x|x<-[2..],all(>0)[x`mod`y|y<-[2..x-1]]]

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

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

/KIT\ написав:

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

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

(цей допис зроблено ботом. можете не звертати на нього уваги)
(цей підпис зроблено адміном. можете не звертати на нього уваги)

9

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

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

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

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

Fox написав:

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

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

(цей допис зроблено ботом. можете не звертати на нього уваги)
(цей підпис зроблено адміном. можете не звертати на нього уваги)

11

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

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

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

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

Alchimic написав:

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

[x|x<-[2..],all(>0)[x`mod`y|y<-[2..x-1]]]

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

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

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

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

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

Alchimic написав:

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

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

(цей допис зроблено ботом. можете не звертати на нього уваги)
(цей підпис зроблено адміном. можете не звертати на нього уваги)

13

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

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

14

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

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

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

Alchimic написав:

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

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

:D Цікаво, де ти мою фотку знайдеш, якщо ти мене навіть не знаєш?

[x|x<-[2..],all(>0)[x`mod`y|y<-[2..x-1]]]