之前已经提出了类似的问题,但我找不到与我的问题完全匹配的问题.
我有4个向量,每个向量保持200-500个4位整数.每个向量中元素的确切数量各不相同,但我可以将其修复为特定值.我需要找到这4个向量中所有元素的可能组合.
例如:
v1 [10,30]
v2 [11,45]
第3节[63,56]
第4节[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;