我想知道是否有办法动态命名变量 - 更准确; 有没有办法在for循环中初始化变量,每次循环执行一部分名称更改?例如:创建名称为row1,row2,row3,row4的10个变量[...] row10 - “行”保持不变但最后的数字发生变化。
为什么我需要知道:我正试图绕过二维向量并遇到问题;我的向量矩阵的每个行都是一个名为“row”的向量,因此无法使用.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;
}
感谢您的帮助!
答案 0 :(得分:4)
您可以通过访问该行,然后在其上调用i
来获取size
行的大小:multiVector[i].size()
。
不,你不能动态生成变量名。变量名仅存在于源代码中,并且在编译时存在,以帮助程序员和编译器识别不同的变量。它们在运行时不存在,因此在程序运行时无法生成。如果你认为你的名字后面需要增加数字的变量,那么你真正想要的是一个数组。