Для чего нужен Push_Back() в C++ - Вопросы по С+
  • Чаты 4chT.com в телеграмм
    Наши группы в телеграмм

Вопрос Для чего нужен Push_Back() в C++

Регистрация
9 Дек 2013
Сообщения
83
Репутация
10
Спасибо
0
Монет
0
Что это такое, Как использовать? Не нужен короткий ответ, Я так не пойму ничего, в инете искал, не понял там ничего, может кто тут обьяснит, (Николаю Веселухе привет и большое спасибо).
 
Регистрация
4 Дек 2013
Сообщения
89
Репутация
-5
Спасибо
0
Монет
0
Втолкнуть элемент в конец контейнера.
vector<int> box;
box.push_back(6);
box.push_back(7);
box.push_back(8);
box.push_back(9);
for (int i = 1; i <= 5; ++i) box.push_back(i);
for (auto x : box) cout << x << ' ';
puts("");
 
Регистрация
5 Ноя 2013
Сообщения
87
Репутация
0
Спасибо
0
Монет
0
Push_back дословно
1. увеличивает размер массива (контейнера) на 1
2. записывает по последнему индексу полученное им значение.

Внутри контейнера это довольно не очевидная по сложности процедура.
Так как вектор скрывает реальный размер массива, который может быть больше чем выдает size(). В большинстве случаев он только меняет размер переменной size внутри, ограничивая зону итерации. И лишь иногда действительно увеличивает массив. Но не на 1, а с запасом, который расчитывается эвристически. Создает новый массив сразу на энное количество элементов больше старого, переписывает в него старый массив, увеличивает переменную size на 1, а real_size на N. Записывает в size-1 новый элемент. Старый массив удаляет.
В некоторых случаях данная процедура довольно затратна по времени, и приходится вмешиваться в алгоритм, например заранее задавая максимальный размер массива. Тогда вектор сразу создаст его, и не будет тратить время на пресоздания новых массивов.
 
Регистрация
14 Июл 2013
Сообщения
82
Репутация
-3
Спасибо
0
Монет
0
функция push_back() — добавляет элемент в стек.
--
Стек - структура данных,
по принципу - первый вошел - последний вышел,
ну короче - для временного хранения данных.
 
Сверху Снизу