Как забить неограниченное количество эллементов в изначально пустой массив в c++ ?

C++ Программирование массив

Желательно привести пример, работающий в Visual Studio C++

Примечание:
Ну, хоть не неограниченное, а от одного до 50, нпр. .. главное, чтобы кол-во элементов в массиве определялась по ходу загона самих элементов в массив в программе..

Примечание:
Лучше вместо "неограниченное" подставить "неопределённое"
Ответы:
Очевидно никак. У вас же нет неограниченной памяти?
list<int> a;
int i = 0;
Для этого в C++ существуют контейнеры. Возьмите STL vector, например.
http://www.cplusplus.com/reference/stl/vector/
Скорее никак ведь: массив - последовательность ячеек (ячеек размером с элемент массива) памяти.
Операционная система выделяет память динамически из разных мест поэтому постоянно увеличивать массив не удасться.
Вы лучше расскажите для каких целей вам это необходимо, тогда и отвечать будет проще
ядерщик, ты не прав, один из вариантов юзать сишную realloc, второй вариант - реализовать класс итератор и контейнер, где каждый новый элемент будет динамически создаваться и содержать указатель на последующий (что верятно и сделано в STL)
>> один из вариантов юзать сишную realloc
Реаллок очень накладный по производительности, а когда идет речь о "неопределенных" размерах, то еще и опасен тем, что в какой-то момент может не найтись достаточно длинного куска памяти.
>> реализовать класс итератор и контейнер, где каждый новый элемент будет динамически создаваться и содержать указатель на последующий
Это STL list, идея хорошая, но для примитивных типов дает большой оверхед по памяти. Если человеку нужно именно подобие массива, то лучше использовать vector. Накрайняк, если самому писать, то выделять достаточно длинный кусок памяти, а когда он заканчивается, выделять еще один и провязывать их в список. Длины кусков можно увеличивать в 2 раза, пока система дает.
Уважаемый, вам нужно либо использовать "динамические массивы" либо контейнеры STL.
Как писали коллеги - это оператором new делается. а вначале создается указатель.
Короче в C#/C/C++ такие вещи делаются через задницу, извините за прямоту. Поэтому при программировании в этих языках всегда стремятся обходить такие алгоритмы, которые требуют инкрементного увеличения памяти, либо придумывают сотнитыщ способов как это сделать оптимальнее.


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.