類似的問題之前已經被問過,但我無法找到與我的問題完全匹配的問題。幾個向量的笛卡爾積
我有4個向量,其中每個都保存200-500個4位整數。每個矢量中元素的確切數量不盡相同,但我可以將其修復爲特定值。我需要在這4個向量中找到所有可能的元素組合。
如:
V1 [10,30] V2 [11,45] V3 [63,56] V4 [82,98]
所以我得到這樣的:
[10,11,63,82]; [30,11,63,82]; [10,45,63,82]; [10,45,56,82]等。
這個算法有一個共同的名稱,所以我可以在網上找到它的一些參考?否則,任何有關在C++中實現這一點的提示都會有所幫助。性能不是一個問題,因爲我只需要運行一次算法。 STL中是否有內置的東西?
當心將有200和500之間^ 4^4的組合。 500^4爲625億,200^4超過10億。 – 2010-03-08 22:37:47
等一下,如果你只有2,v1 = {1,1,2}和v2 = {1,2},你是否希望{1,2}在輸出中出現兩次?另外,你認爲{1,2}和{2,1}是相同的嗎? – 2010-03-08 22:39:51
此操作的通用名稱是「笛卡爾產品」。 – 2010-03-08 22:40:38