在循环中生成集合

时间:2012-08-17 05:04:53

标签: c++ set

是否可以在循环中生成集合,循环为集合提供新名称? 我正在尝试执行以下操作:

//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循环中创建集合,将其视为变量?

1 个答案:

答案 0 :(得分:2)

编译后,C ++中的变量名称不存在(除了调试信息)。所以你的要求并不是很有意义。也许您想要将每个集合与一个名称相关联,并将它们粘贴在map<string, Set>

在像Python这样的语言实际上可以让你这样做,这就是幕后发生的事情。唯一的区别是变量名在运行时在dict中被隐式查找。