这个问题也困扰了我好久,要是真的去动态的生成x0,x1,x2........是真的不可能。
但是会有办法做到相似效果。
比如想要做到如下:
for(int i = 0; i < _vector.size(); i++) //_vector是一个vector对象
{
auto v = _vector.at(i);
auto xi = get_name(v); //想要在这个循环中生成x0,x1,x2,x3........
}
一个最直观最简单的办法就是利用数组。
int x[_vector.size()]; //可以根据实际情况定义数据类型
for(int i = 0; i < _vector.size(); i++)
{
auto v = _vector.at(i);
auto x[i] = get_name(v); //间接生成x0,x1,x2,x3......
}
可是有的时候要定义的对象是一种自定义类型,而且偏偏它还没有默认构造函数,就比较麻烦。
可以用vector容器替换数组:
std::vector<DataType> vec;
for(int i = 0; i < _vector.size(); i++)
{
auto v = _vector.at(i);
vec.push_back(get_name(v));//xi 就相当于vec.at(i)
}
这样就间接实现了动态命名。