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

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

Восстановить пароль Регистрация
 
Supernatural
285 / 141 / 28
Регистрация: 22.11.2010
Сообщений: 1,441
19.06.2014, 07:42     Добавление динамического элемента в статический массив #1
в продолжение этой темы.
если создам статический массив
C++
1
ECM a[6];
мне нужно в него добавить седьмой элемент, нужна подсказка.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2014, 07:42     Добавление динамического элемента в статический массив
Посмотрите здесь:

C++ Добавление и удаление элемента динамического массива
Добавление элемента в начало динамического массива C++
Адрес элемента динамического массива C++
C++ Одномерный динамический массив, передача в функции, добавление и удаление элемента
C++ Переведите пожалуйста из динамического массива в статический
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
19.06.2014, 07:58     Добавление динамического элемента в статический массив #2
В него нельзя добавить 7-й элемент.
uglyPinokkio
325 / 228 / 41
Регистрация: 30.05.2014
Сообщений: 682
19.06.2014, 08:34     Добавление динамического элемента в статический массив #3
Цитата Сообщение от Supernatural Посмотреть сообщение
мне нужно в него добавить седьмой элемент, нужна подсказка.
Ну продолжим тут - динамический массив в C++ это vector.

C++
1
2
3
4
std::vector<ECM> a;
a.resize(6);
ECM b;
a.push_back(b);
Supernatural
285 / 141 / 28
Регистрация: 22.11.2010
Сообщений: 1,441
19.06.2014, 09:23  [ТС]     Добавление динамического элемента в статический массив #4
не не, тему вектора пока не трогать, с ним потом поговорим. Нужны другие варианты.

Добавлено через 2 минуты
Цитата Сообщение от castaway Посмотреть сообщение
В него нельзя добавить 7-й элемент.
но как-то надо, допустим запускаю программу, хочу ввести 6 машинок. А потом решил еще добавить. Вот это еще нужно организовать, так как надо построить статическую и динамическую организацию.
uglyPinokkio
325 / 228 / 41
Регистрация: 30.05.2014
Сообщений: 682
19.06.2014, 09:24     Добавление динамического элемента в статический массив #5
Цитата Сообщение от Supernatural Посмотреть сообщение
Нужны другие варианты.
А как уже сказали - со статическим вариантов нет, только динамический и переотводить при добавлении либо статический максимального размера, если этот размер известен.
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
19.06.2014, 09:25     Добавление динамического элемента в статический массив #6
Только через динамический массив/контейнер.
uglyPinokkio
325 / 228 / 41
Регистрация: 30.05.2014
Сообщений: 682
19.06.2014, 09:25     Добавление динамического элемента в статический массив #7
Цитата Сообщение от Supernatural Посмотреть сообщение
допустим запускаю программу, хочу ввести 6 машинок. А потом решил еще добавить.
А в чем разница-то между 6 и еще ? . Динамически по одной и добавлять.
Supernatural
285 / 141 / 28
Регистрация: 22.11.2010
Сообщений: 1,441
19.06.2014, 09:33  [ТС]     Добавление динамического элемента в статический массив #8
Цитата Сообщение от uglyPinokkio Посмотреть сообщение
А в чем разница-то между 6 и еще ? . Динамически по одной и добавлять.
хочу сразу предусмотреть все варианты)
хотя может не тренировать себя....по отдельности все написать: 1 программа с динамическим массивом, другая со статическим. Но вот вопрос, если в статическом массиве воспользоваться деструктором, ведь значения будут пустые или объект класса, который его вызвал, вовсе исчезнет из массива?
uglyPinokkio
325 / 228 / 41
Регистрация: 30.05.2014
Сообщений: 682
19.06.2014, 09:40     Добавление динамического элемента в статический массив #9
Цитата Сообщение от Supernatural Посмотреть сообщение
Но вот вопрос, если в статическом массиве воспользоваться деструктором, ведь значения будут пустые или объект класса, который его вызвал, вовсе исчезнет из массива?
С этого места помедленнее . В примере в массиве лежат не указатели а объекты. Зачем там пользоваться деструктором? Оно само развалится по выходу из области видимости. А заменить объект в массиве - просто присвоением.
0x10
2426 / 1598 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
19.06.2014, 09:40     Добавление динамического элемента в статический массив #10
Цитата Сообщение от Supernatural Посмотреть сообщение
в статическом массиве воспользоваться деструктором, ведь значения будут пустые или объект класса, который его вызвал, вовсе исчезнет из массива?
Не надо явно вызывать деструктор.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
19.06.2014, 10:13     Добавление динамического элемента в статический массив #11
Муа-ха-ха-ха:
C++
1
2
3
4
5
6
7
8
9
unsigned n = 6, shift = 0;
 
ECM a[n+1];
a[n] = NULL;
 
if( NeedMore() )
  shift = 1;
for( i=0; i<n+shift; i++ )
  a[i] = some();
Еще предусмотрено, и без динамики.
Supernatural
285 / 141 / 28
Регистрация: 22.11.2010
Сообщений: 1,441
19.06.2014, 11:03  [ТС]     Добавление динамического элемента в статический массив #12
Я все решил реализовать 2 кода со статическим массивом и с динамическим.
Цитата Сообщение от 0x10 Посмотреть сообщение
Не надо явно вызывать деструктор.
все же лучше показать, что он используется, иначе для чего я вообще его объявлял и определял.
Есть вопрос, по вызову конструкторов с параметрами и без, но это в следующей теме))))) И на этом я закрываю дискуссию, всем спасибо за внимание)))

Добавлено через 4 минуты
SatanaXIII, хороший ход, надо попробовать
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
19.06.2014, 11:07     Добавление динамического элемента в статический массив #13
Цитата Сообщение от Supernatural Посмотреть сообщение
все же лучше показать, что он используется, иначе для чего я вообще его объявлял и определял.
ну попробуйте. Заодно будет повод создать еще одну тему с вопросом "А пачему не работает?"
0x10
2426 / 1598 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
19.06.2014, 11:13     Добавление динамического элемента в статический массив #14
Цитата Сообщение от Croessmah Посмотреть сообщение
ну попробуйте. Заодно будет повод создать еще одну тему с вопросом "А пачему не работает?"
UB - есть еще вариант, что всем будет расскзывать и показывать как оно работает. А на форумах параноики сидят, ниче не понимают.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
19.06.2014, 11:14     Добавление динамического элемента в статический массив #15
Цитата Сообщение от 0x10 Посмотреть сообщение
UB - есть еще вариант, что всем будет расскзывать и показывать как оно работает.
ну так рано или поздно всё равно сломается и будет повод
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2014, 18:20     Добавление динамического элемента в статический массив
Еще ссылки по теме:

C++ Исправить программу. Статический массив вместо динамического
C++ Увеличение элемента динамического массива
Сделать добавление элемента в массив и удаление элемента из массива используя STL C++

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

Или воспользуйтесь поиском по форуму:
Supernatural
285 / 141 / 28
Регистрация: 22.11.2010
Сообщений: 1,441
19.06.2014, 18:20  [ТС]     Добавление динамического элемента в статический массив #16
Цитата Сообщение от Croessmah Посмотреть сообщение
ну попробуйте. Заодно будет повод создать еще одну тему с вопросом "А пачему не работает?"
как говорится в правилах форума, один вопрос- одна тема, иначе бы я не стал создавать, мягко говоря, много тем.
Yandex
Объявления
19.06.2014, 18:20     Добавление динамического элемента в статический массив
Ответ Создать тему
Опции темы

Текущее время: 14:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru