从n个数组中选n个元素的方法(每个数组中选一个)

来源:互联网 发布:淘宝 已收到货退货流程 编辑:程序博客网 时间:2024/04/26 08:55
#include <vector>
#include <iostream>
using namespace std;
void step(unsigned int level, vector < vector <char> > & v, vector <char> & res);

void main()
{

  vector< char > v1;
  vector< char > v2;
  vector< char > v3;
  vector< char > v4;
  vector< char > v5;

  vector < vector < char > > v;

  v1.push_back('a');v1.push_back('b');v1.push_back('c');
  v2.push_back('d');v2.push_back('e');
  v3.push_back('f');v3.push_back('g');v3.push_back('h');
  v4.push_back('i');v4.push_back('j');v4.push_back('k');v4.push_back('l');

  vector < char > res;
 

  v.push_back(v1);v.push_back(v2);v.push_back(v3);v.push_back(v4);
  res.resize(v.size());

  step(0, v, res);
}


void step(unsigned  int level, vector < vector <char> > & v, vector <char> & res)
{
  for (unsigned int i=0; i<v[level].size(); i++)
  {
    res[level] = v[level][i];
    if ( level == v.size()-1)
    {
       for (unsigned int k=0; k<res.size(); k++)
       {
         cout << res[k];
       }
       cout << endl;
    }
    else
    {
      step(level + 1, v, res);
    }
  }
}
原创粉丝点击