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;编译器将此视为集合的实际名称而不是变量时...

我怎样才能让它把它看作一个变量,以便根据变量 i 的值在 for 循环中创建集合?

4

1 回答 1

2

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

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

于 2012-08-17T05:09:33.193 回答