类似的问题已经被问过,但我不能找到完全匹配的我的问题。

我有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什么?

有帮助吗?

解决方案

没有太多的算法的...

for(vector<int>::const_iterator i1 = v1.begin(); i1 != v1.end(); ++i1)
    for(vector<int>::const_iterator i2 = v2.begin(); i2 != v2.end(); ++i2)
        for(vector<int>::const_iterator i3 = v3.begin(); i3 != v3.end(); ++i3)
            for(vector<int>::const_iterator i4 = v4.begin(); i4 != v4.end(); ++i4)
                cout << "[" << *i1 << "," << *i2 << "," << *i3 << "," << *i4 << "]" << endl;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top