Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Добавление элемента в массив.


Автор: hafman 26.5.2011, 12:43
Какой стандартной функций можно добавить элемент в массив?

Автор: boostcoder 26.5.2011, 12:48
поясните.

Автор: borisbn 26.5.2011, 12:50
Цитата(hafman @  26.5.2011,  12:43 Найти цитируемый пост)
Какой стандартной функций можно добавить элемент в массив?

push_back

Автор: hafman 26.5.2011, 12:53
Цитата(borisbn @  26.5.2011,  12:50 Найти цитируемый пост)
push_back 

А пример самый простой можно? smile

Добавлено через 3 минуты и 28 секунд
Цитата(boostcoder @  26.5.2011,  12:48 Найти цитируемый пост)
поясните. 

Есть пустой массив, при определенных условиях в него надо кидать один элемент. 
p.s,
Нужно для системы очков в игре, костыль большой но всё же.

Автор: ZVano 26.5.2011, 13:10
Цитата(hafman @  26.5.2011,  12:53 Найти цитируемый пост)
А пример самый простой можно?

borisbn подразумевал шаблоны из STL.
http://www.cplusplus.com/reference/stl/list/push_back/
http://www.cplusplus.com/reference/stl/vector/push_back/

В C++ станддартные массивы вида int myArr[10]; не могут менять свой размер.


Автор: hafman 26.5.2011, 13:20
Цитата(ZVano @  26.5.2011,  13:10 Найти цитируемый пост)
borisbn подразумевал шаблоны из STL.
STL List
STL Vector

В C++ станддартные массивы вида int myArr[10]; не могут менять свой размер.

Это плохо. А не возникнет ли косяк с безконечным добавлением?У меня просто эта часть кода будит лежать в одном большом цикле.Попытки прибавления к переменной числа, при определенных условиях заканчивались выводом огромного числа и его дальнейшем ростом.

Автор: borisbn 26.5.2011, 13:53
Цитата(hafman @  26.5.2011,  13:20 Найти цитируемый пост)
Это плохо.

что ? шаблоны или то, что в int a[ 10 ]; нельзя добавить 11-й элемент ?

Цитата(hafman @  26.5.2011,  13:20 Найти цитируемый пост)
А не возникнет ли косяк с безконечным добавлением?

с бесконечным добавлением и без удаления возникнет. причём программирование и массивы тут не при чём. такая ситуация будет во всех областях...

Цитата(hafman @  26.5.2011,  13:20 Найти цитируемый пост)
У меня просто эта часть кода будит лежать в одном большом цикле

эта часть... какая часть ?

Цитата(hafman @  26.5.2011,  13:20 Найти цитируемый пост)
Попытки прибавления к переменной числа, при определенных условиях заканчивались выводом огромного числа и его дальнейшем ростом.

а это вообще не понял... нужно добавлять к переменной какое-то число (x = x + 42) или же нужно в имеющийся массив добавлять число в конец (push_back) ?

Автор: hafman 26.5.2011, 22:18
Сработало, спасибо borisbn и другим. smile 

Автор: JЕT 27.5.2011, 10:51
Цитата

В C++ станддартные массивы вида int myArr[10]; не могут менять свой размер.


ну так ничего не мешает создать динамический массив, который может.

Автор: borisbn 27.5.2011, 10:55
Цитата(JЕT @  27.5.2011,  10:51 Найти цитируемый пост)
ну так ничего не мешает создать динамический массив, который может.

держать где-то его размер, проверять не выходит ли индекс за границы, написать ф-цию добавления элемента в конец с ресайзингом размера, не забыть в конце программы очистить память... Чувствуете запах велосипеда ?

Автор: JЕT 29.5.2011, 10:06
Цитата

держать где-то его размер, проверять не выходит ли индекс за границы, написать ф-цию добавления элемента в конец с ресайзингом размера, не забыть в конце программы очистить память... Чувствуете запах велосипеда ? 


разумеется велосипед. но своим постом я не пытался сказать, что нужно использовать динамические массивы, а всего лишь сказал, что есть такая возможность. поскольку после предыдущего ответа могло показаться, что динамически-расширяемые массивы можно создать только с помощью STL.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)