Я все еще … новичок в C ++.
Я не знаю название того, что я ищу, но
Я много искал, но не могу найти ответ на следующий вопрос:
Я хочу написать программу, которая объявила бы требуемое количество переменных.
Пример:
int a;
cin>>a;
Теперь, если «а» равно 5 (или любому другому числу), я хочу, чтобы программа объявила еще 5 переменных,
Имена не имеют значения, но скажем … n1, n2, n3, n4, n5.
Я пробовал массив и цикл, но не могу заставить его работать.
Я получил ответ на хорватском форуме (forum.hr), но форум в настоящее время не в сети, поэтому у меня не было
время попробовать это …
Речь шла об использовании кучи вместо стека
Спасибо заранее
C ++ имеет контейнерные классы для этого. В частности, вы хотите vector
:
std::vector<int> a(size);
for (int i = 0; i < a.size(); ++i)
std::cin >> a[i];
Объявляет вектор a
целых чисел некоторого размера и читает его элементы, один за другим.
Если это C ++, лучшее, что вы можете сделать, это использовать std::vector
как он будет управлять памятью для вас.
Вы можете хранить их в массиве:
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;
}
так что вам не нужно управлять памятью.