Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在C+中初始化变量时的动态名称+;_C++_Variables_Dynamic_Vector - Fatal编程技术网

C++ 在C+中初始化变量时的动态名称+;

C++ 在C+中初始化变量时的动态名称+;,c++,variables,dynamic,vector,C++,Variables,Dynamic,Vector,我想知道是否有一种方法可以动态命名变量——更准确地说是否有一种方法可以在for循环中初始化变量,每次循环执行名称的一部分时都会更改?例如:创建10个名为row1、row2、row3、row4[…]row10的变量-其中“row”保持不变,但末尾的数字会更改 为什么我需要知道:我正试图了解二维向量,却遇到了一个问题;我的向量矩阵的每一行都是一个名为“row”的向量,因此无法使用.size方法检查行的长度(与列一样),因为它们没有唯一的名称 //Creation of vector vector &

我想知道是否有一种方法可以动态命名变量——更准确地说是否有一种方法可以在for循环中初始化变量,每次循环执行名称的一部分时都会更改?例如:创建10个名为row1、row2、row3、row4[…]row10的变量-其中“row”保持不变,但末尾的数字会更改

为什么我需要知道:我正试图了解二维向量,却遇到了一个问题;我的向量矩阵的每一行都是一个名为“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;
    }
//创建向量
向量多向量;
对于(inti=0;i<5;i++){//向量给出了5行
矢量rad(7);
multiVector.push_back(rad);//新声明的向量用行填充
}
//向量被打印出来
对于(int i=0;icout您可以通过访问第
i
行,然后在该行上调用
size
来获取该行的大小:
multiVector[i].size()


不,您不能动态生成变量名。变量名仅存在于源代码和编译时,以帮助程序员和编译器识别不同的变量。它们在运行时不存在,因此无法在程序运行时生成。如果您认为需要在变量名后增加数字的变量名称,那么你真正想要的是一个数组。

变量名称是语言的一个静态组件。你不能动态创建它们,但你可以通过使用
无序映射来解决这个问题。
。有点像动态语言内部所做的。我认为在很多情况下,动态变量是有用的(例如解析JSON),但是它们不是很C++y。哦,当然!我不知道为什么我没有想到facepalm,但是谢谢!