我有一个矢量说vector<vector<int> > items不同大小的矢量,如下所示
1,2,3
4,5
6,7,8
Run Code Online (Sandbox Code Playgroud)
我想根据这些向量的笛卡尔积来创建组合
1,4,6
1,4,7
1,4,8
and so on till
3,5,8
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点 ?我查了几个链接,我也在这篇文章的末尾列出了它们,但我无法解释它,因为我不熟悉这种语言.有些人可以帮助我.
#include <iostream>
#include <iomanip>
#include <vector>
using namespace std;
int main()
{
vector<vector<int> > items;
int k = 0;
for ( int i = 0; i < 5; i++ ) {
items.push_back ( vector<int>() );
for ( int j = 0; j < 5; j++ )
items[i].push_back ( k++ );
}
cartesian ( items ); // I want some function here …Run Code Online (Sandbox Code Playgroud) 之前已经提出了类似的问题,但我找不到与我的问题完全匹配的问题.
我有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中是否有任何内置功能?