2012-09-01 85 views
1

我正在將一些代碼從Python轉換爲C++。我碰到以下內容:這段代碼是什麼意思?

set(x for listX in listY for x in listX) 

我對C++非常熟悉,並且瞭解了Python中的一些基本構造。在上面的代碼中,我知道正在創建一個集合,但我不理解括號內的代碼。任何幫助?

回答

6

listY可能是類似下面的結構,從而擴展代碼:

listY = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 
result = set() 
for listX in listY: 
    for x in listX: 
     result.add(x) 

通知:套不允許重複條目

+0

太棒了!謝謝! – Mika

+1

生成器表達式已傳遞給'set',所以一切都立即求值 - 在'set'實現中,當然。 –

+0

事實上,你是完全正確的,我很抱歉,我的錯誤。 – andrean