gpt4 book ai didi

C++ 置换

转载 作者:太空狗 更新时间:2023-10-29 23:37:59 26 4
gpt4 key购买 nike

为什么此代码注释有效(代码编译并运行良好,但实际上并未显示排列):

int main(int argc, char *argv[])
{
long number;
vector<long> interval;
vector<long>::const_iterator it;

cout << "Enter number: ";
cin >> number;

while(number-->0){
interval.push_back(number);
}

do{
for(it = interval.begin(); it < interval.end(); ++it){
cout << *it << " ";
}
cout << endl;
} while(next_permutation(interval.begin(), interval.end()));

return (0);
}

但是在改变这一行之后:

while(next_permutation(interval.begin(), interval.end()));

与:

while(prev_permutation(interval.begin(), interval.end()));

排列不是通过作用于位置来改变 vector 中的元素吗?

附言:我现在已经编辑了代码。

最佳答案

排列是按字典顺序排列的,这就是std::next_permutationstd::prev_permutation算法遍历。

此处输入“最大”排列,因此没有下一个排列。

关于C++ <algorithm> 置换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3141907/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com