2012-08-17 83 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這樣的語言中,它實際上可以讓你做到這一點,這就是幕後發生的事情。唯一的區別是變量名在運行時隱式地在字典中查找。