Мне интересно, есть ли способ динамически назвать переменные - точнее; Есть ли способ инициализировать переменные for-loops таким образом, что каждый раз, когда цикл выполняет часть имени, изменяется? Например: создание 10 переменных с именами row1, row2, row3, row4 [...] row10 - где «строка» остается неизменной, но число в конце изменяется.Динамические имена при инициализации переменных в C++
Зачем мне нужно знать: я пытаюсь развернуть голову вокруг двумерных векторов и столкнулся с проблемой; каждый строка моей векторной матрицы - это вектор с именем «строка», и поэтому невозможно проверить длину строк, используя метод .size
(например, с столбцами), поскольку у них нет уникальных имен ,
//Creation of vector
vector <vector <int> > multiVector;
for (int i = 0; i < 5; i++) { //Vector is given 5 rows
vector <int> rad (7);
multiVector.push_back(rad); //The newly declared vector is filled with rows
}
//Vector is printed
for (int i = 0; i < multiVector.size(); i++) {
for (int j = 0; j < 7; j++) {
cout << multiVector[i][j] << " ";
}
cout << endl;
}
Благодарим за помощь!
Имена переменных являются статическими компонентами языка. Вы не можете создавать их динамически, но вы можете взломать это, используя 'unordered_map'. Вроде как динамические языки делают внутри. –
pmr