Другие языки программирования и технологии

Как объявить массив в с++, если не известно количество элементов?

То есть вводиться набор чисел (Размер входного потока не превышает 256 КБ) , кол-во элементов остается неизвестным . Ну, и как узнать размер этого массива?
Сохраняйте элементы в другом хранилище, например в связанном списке или в файле. Когда входные данные кончатся - выделите массив уже известного размера, и скопируйте данные в него.

Или используйте STL. Там есть подходящий Вам шаблон vector. Например так:

...
std::vector <int> myArray;
int value;
cin >> value;
while( value ) { // пока не встретится число 0
myArray.push_back(value); // допишем число в конец вектора
cin >> value; // прочитаем следующее число
}
...
Диман Коннов
Диман Коннов
11 876
Лучший ответ
рулеткой
RR
Ru Ruslan
6 259
бери динамический массив ...увеличивай его длинну с каждым элементом на 1 ...
В таком случае удобно использовать динамические массивы
ЛБ
Лядов Бориc
2 466
Тут все зависит от способа заполнения массива.
1 способ - в каком-то месте программы вы узнаете количество элементов массива и больше оно не изменяется (ну или хотя-бы не увеличивается) . Тогда в начале программы объявляете массив как обычный указатель нужного типа и при получении размера массива функцией new или другой подобной выделяете требуемое место в памяти и присваиваете ее адрес ранее объявленому указателю. Далее с ним можно работать как с обычным массивом.
2 способ - в процессе работы массив может разростаться сколько угодно много. Тогда для хранения можно использовать либо готовый контейнерный класс, либо самому написать клас типа стек, дек, очередь, связаный список и тд.
А еще проще если знаете максимальный размер массива больше которого он никак не станет и памяти не жалко, можно объявить массив максимального размера не не использовать его не полную.
Массив может быть и динамический, не знали?

Похожие вопросы