是否可以在循环中生成集合,循环为集合提供新名称? 我正在尝试执行以下操作:
//create storage structure for options according to hops
int lengthOfStart = start.length();
for (int i = 0; i<start.length();++i) {
string nameOfSet = "Hop" + i;
Set<string> nameOfSet;
wordLadderOptions.enqueue(nameOfSet);
}
我正在使用传统c ++集的略微修改版本,它只提供了一些用于数据操作的函数,但是该集合与c ++标准库中内置的集合相同。当我说Set<string> nameOfSet;
时,编译器将其视为集合的实际名称而不是变量......
如何根据变量i的值在for循环中创建集合,将其视为变量?
答案 0 :(得分:2)
编译后,C ++中的变量名称不存在(除了调试信息)。所以你的要求并不是很有意义。也许您想要将每个集合与一个名称相关联,并将它们粘贴在map<string, Set>
?
在像Python这样的语言实际上可以让你这样做,这就是幕后发生的事情。唯一的区别是变量名在运行时在dict中被隐式查找。