在循环中创建变量(当前循环索引作为它们的名称)

make variables in loops (current loop index as their names)

是否可以在循环中创建变量?每次代码运行时,我都需要未知(1-50)个 lists.It 更改,我不想列出超出我需要的列表

看来我需要写一个我已经尝试过的东西:

for(int i = 0 ; i < number of tools; i++){
    list<int> listNumber%i;   //listNumber1,listNumber2...
}

无法声明可变数量的变量或动态命名它们。

如果您想构造 number_of_tools 个列表并使用索引访问它们,那么您可以拥有一个列表数组:

auto lists = std::vector<std::list<int>>(number_of_tools);

然后第一个列表是lists[0]等等。

如果相反,您只是想在循环的每次迭代中使用不同的列表,并在迭代后丢弃该列表,那么您可以像您所做的那样简单地在循环内声明该列表,但您没有不需要(也不能)更改变量的名称。

对于初学者来说,在每次迭代中使用不同的名称在循环中声明局部变量是没有意义的,因为变量的范围是循环体。

for(int i = 0 ; i < number of tools; i++){
    list<int> listNumber%i;   //listNumber1,listNumber2...
}

因此,例如,循环的每次迭代将对之前迭代中创建的列表一无所知。

例如,您可以在循环之前声明一个列表列表,并使用数据成员 back() 访问每次迭代中最后创建的列表

list<list<int>> lst;
for(int i = 0 ; i < number of tools; i++){
    lst.push_back( list<int>() );
    // process the created list using lst.back()
}