我有4个向量,每个向量包含200-500个4位整数。每个向量中元素的确切数量各不相同,但我可以将其修复为特定值。我需要在这4个向量中找到所有可能的元素组合。
例如:
v1 [10,30] v2 [11,45] 第3节[63,56] v4 [82,98]
所以我会得到这样的东西:
[10,11,63,82]; [30,11,63,82]; [10,45,63,82]; [10,45,56,82]等。
这个算法有一个通用的名称,所以我可以在网上找到一些参考吗?否则,在C ++中实现它的任何提示都会有所帮助。性能不是问题,因为我只需要运行一次算法。 STL中是否有任何内置的东西?
答案 0 :(得分:11)
算法不多......
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;