是否可以在循环中创建变量?我需要一个未知的(1-50)数量的列表。每次代码运行时都会更改,我不想让列表超出我的需要
它看起来像我需要写一个我已经尝试过的东西:
for(int i = 0 ; i < number of tools; i++){
list<int> listNumber%i; //listNumber1,listNumber2...
}
答案 0 :(得分:1)
无法声明可变数量的变量,也无法动态命名。
如果你想构建number_of_tools
个列表并使用索引访问它们,那么你可以拥有的是一系列列表:
auto lists = std::vector<std::list<int>>(number_of_tools);
然后第一个列表是lists[0]
,依此类推。
如果相反,你只是想在循环的每次迭代中使用不同的列表,并在迭代后抛出列表,那么你可以简单地在循环中声明列表,但是你不需要to(你不能)改变变量的名称。
答案 1 :(得分: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()
}