Программа сама объявляет переменные

Я все еще … новичок в C ++.
Я не знаю название того, что я ищу, но
Я много искал, но не могу найти ответ на следующий вопрос:
Я хочу написать программу, которая объявила бы требуемое количество переменных.
Пример:

int a;
cin>>a;

Теперь, если «а» равно 5 (или любому другому числу), я хочу, чтобы программа объявила еще 5 переменных,
Имена не имеют значения, но скажем … n1, n2, n3, n4, n5.
Я пробовал массив и цикл, но не могу заставить его работать.
Я получил ответ на хорватском форуме (forum.hr), но форум в настоящее время не в сети, поэтому у меня не было
время попробовать это …
Речь шла об использовании кучи вместо стека
Спасибо заранее

0

Решение

C ++ имеет контейнерные классы для этого. В частности, вы хотите vector:

std::vector<int> a(size);
for (int i = 0; i < a.size(); ++i)
std::cin >> a[i];

Объявляет вектор a целых чисел некоторого размера и читает его элементы, один за другим.

2

Другие решения

Если это C ++, лучшее, что вы можете сделать, это использовать std::vector как он будет управлять памятью для вас.

1

Вы можете хранить их в массиве:

int a;
cin >> a;

int *number = new int[a];  // allocate an array of size a

for (int i = 0; i < a; i++) {
number[i] = 5 + i;     // set your numbers to anything here
}

delete[] number;             // otherwise you have memory leak

или лучше использовать vector:

vector<int> number(a);

// iterate with a normal for loop
for (int i = 0; i < number.size(); i++) {
number[i] = 5 + i;
}

..

// or use iterators
for (vector<int>::iterator it = number.begin(); it != number.end(); ++it) {
cout << *it << endl;
}

так что вам не нужно управлять памятью.

1
По вопросам рекламы [email protected]