#include<iostream>
#include<vector>
using namespace std;
void productImplement(vector<vector<double>> dimvalue,vector<vector<double>> &res,int layer,vector<double> tmp){
if (layer < dimvalue.size() - 1){
for (int i = 0; i < dimvalue[layer].size(); i++){
vector<double> sb;
sb.clear();
for (int i = 0; i < tmp.size(); i++){
sb.push_back(tmp[i]);
}
sb.push_back(dimvalue[layer][i]);
productImplement(dimvalue, res, layer+1,sb);
}
}
else if (layer == dimvalue.size()-1){
for (int j = 0; j < dimvalue[layer].size();j++){
tmp.push_back(dimvalue[layer][j]);
res.push_back(tmp);
tmp.pop_back();
}
}
}
int main(){
vector<double> t1;
t1.push_back(1);
t1.push_back(2);
vector<double> t2;
t2.push_back(3);
t2.push_back(4);
t2.push_back(5);
vector<double> t3;
t3.push_back(5);
t3.push_back(6);
vector<vector<double>> dimvalue;
dimvalue.push_back(t1);
dimvalue.push_back(t2);
dimvalue.push_back(t3);
vector<double> tmp;
vector<vector<double>> res;
int layer = 0;
productImplement(dimvalue, res, layer, tmp);
for (int i = 0; i < res.size(); i++){
for (int j = 0; j < res[i].size(); j++){
cout << res[i][j] << ",";
}
cout << endl;
}
return 0;
}
笛卡尔积实现(递归C++版本)
最新推荐文章于 2024-05-16 13:36:28 发布