2012-08-17 88 views
0

是否有可能在循环中生成集,其中循环为集创建了一个新名称? 我试图做到以下几点:在循环中生成集

//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;编译器认为这是一组,而不是一个变量的实际名称...

我怎样才能使基于可变我看看它作为一个变量,才能在创造套环值?

+2

听起来像一个载体是一个更好的选择。 'hop0'和'hop1'支持'hop [0]'和'hop [1]'是什么好处? – chris 2012-08-17 05:05:56

+0

几乎相同的问题,因为这个http://stackoverflow.com/questions/7143120/convert-string-to-variable-name-or-variable-type(还有更多的链接到其他有很多背景的帖子信息) – jogojapan 2012-08-17 05:12:19

+0

每组包含一串没有特定顺序的单词。之后我需要对每个单词进行迭代......只是基于这样一个事实,即没有顺序btw单词我认为一个集合会更好? – rrazd 2012-08-17 05:12:36

回答

2

编译后C++中不存在变量名(除调试信息外)。所以你的要求不是很有意义。也许你想要把每个集合与一个名字联系起来,并把它们粘在一个map<string, Set>

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