首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用next_permutation访问置换值

使用next_permutation访问置换值
EN

Stack Overflow用户
提问于 2012-12-17 04:39:51
回答 1查看 158关注 0票数 0

如何在while循环like之外使用置换后的数字进行比较..因为我已经检查过了,向量外的while和前面定义的是一样的。

代码语言:javascript
复制
void display(vector<int> vec){
    for (int i=0; i<vec.size();i++){
        cout<<vec[i];
    }
}
int main()
{
  vector <int> vec;
  vec.push_back(3);
  vec.push_back(2);
  vec.push_back(1);
  vec.push_back(4);
  sort(vec.begin(), vec.end());
  while (next_permutation( vec.begin(), vec.end() )){
  display(vec);
  cout<<endl;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-17 05:01:55

下面的complete程序在Visual C++和g++上都可以很好地工作:

代码语言:javascript
复制
#include <algorithm>
#include <vector>
#include <iostream>
#include <utility>
using namespace std;

template< class Item >
wostream& operator<<( wostream& stream, vector<Item> const& v )
{
    stream << "[";
    for( auto p = v.begin(); p != v.end();  ++p )
    {
        if( p != v.begin() ) { wcout << ", "; }
        wcout << *p;
    }
    stream << "]";
    return stream;
}

int main()
{
    int const   data[]  = {1, 2, 3, 4};
    vector <int> vec( begin( data ), end( data ) ); 
    sort(vec.begin(),vec.end());
    do
    {
        wcout << vec << endl; 
    } while (next_permutation( vec.begin(), vec.end() ) );
}

主要代码与您的代码相同(它被复制和粘贴,只是稍微编辑了一下以添加数据)。

那么,考虑到代码可以工作,那么问题到底是什么呢?

编辑:OP现在已经用不同的代码更新了问题,用while循环代替了do循环,并且更改了对next_permutationdisplay的调用顺序,使得它无法显示原始的排列。

给出的新代码,

代码语言:javascript
复制
void display(vector<int> vec){
    for (int i=0; i<vec.size();i++){
        cout<<vec[i];
    }
}
int main()
{
  vector <int> vec;
  vec.push_back(3);
  vec.push_back(2);
  vec.push_back(1);
  vec.push_back(4);
  sort(vec.begin(), vec.end());
  while (next_permutation( vec.begin(), vec.end() )){
  display(vec);
  cout<<endl;
}

即使在添加了必需的标头和using namespace std;之后也不编译。

虽然这只是由于缺少右大括号,但可以通过从工作版本复制和粘贴代码来避免这种情况。

这样做的工作量也要少得多。:-)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13905262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档