设为首页 加入收藏

TOP

逐个追加组合算法(二)
2013-09-26 19:52:34 来源: 作者: 【 】 浏览:335
Tags:逐个 追加 组合 算法

 

  q[j]=Temp;

  for (int m=j+1; m<nSize+1; m++)

  {

  q[m]=p[m-1];

  }

  q[nSize+1]='\0';

  g_vecA.push_back(q);

  }

  }

  for (itor = g_vecB.end()-1; itor>=g_vecB.begin(); itor--)

  {

  char* p = *itor;

  g_vecB.erase(itor);

  }

  g_vecB.clear();

  }

  else

  {

  //遍历A中的元素

  for(itor=g_vecA.begin();itor!=g_vecA.end();itor++)

  {

  char* p = *itor;

  int nSize = strlen(p);

  //从0到nSize位置放Temp

  for (int j=0; j<nSize+1; j++)

  {

  char* q = new char[nSize+2];

  for (int k=0; k<j; k++)

  {

  q[k]=p[k];

  }

  q[j]=Temp;

  for (int m=j+1; m<nSize+1; m++)

  {

  q[m]=p[m-1];

  }

  q[nSize+1]='\0';

  g_vecB.push_back(q);

  }

  }

  for (itor = g_vecA.end()-1; itor>=g_vecA.begin(); itor--)

  {

  char* p = *itor;

  g_vecA.erase(itor);

  }

  g_vecA.clear();

  }

  }

  int nCount = 0;

  //打印所有组合

  if (g_vecA.size()==0)

  {

  for(itor=g_vecB.begin();itor!=g_vecB.end();itor++)

  {

  nCount ++;

  char* p = *itor;

  cout 《 p 《 ", ";

  if (nCount%10 == 0)

  {

  cout 《 endl;

  }

  delete p;

  p=NULL;

  }

  }

  else

  {

  for(itor=g_vecA.begin();itor!=g_vecA.end();itor++)

  {

        

首页 上一页 1 2 3 4 5 下一页 尾页 2/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇求出最短路径实例分析 下一篇C++中虚函数功能的实现机制

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: