gpt4 book ai didi

C++ next_permutation 没有以相反的顺序列出

转载 作者:行者123 更新时间:2023-11-28 02:21:10 25 4
gpt4 key购买 nike

有什么方法可以通过在 C++ 中使用 next_permutation 来打印所有排列,而忽略已经以相反顺序出现的排列。例如,在它打印{1, 2, 3, 4} 之后,它不应该打印{4, 3, 2, 1}

最佳答案

只要排列中的第一个元素按字典顺序小于最后一个元素,您就不会得到任何在反转时会重复的排列:

std::vector<int> v {1, 2, 3, 4};

do {
if (v.front() < v.back()) { // first less than last
std::copy(v.begin(), v.end(),
std::ostream_iterator<int>(std::cout, " "));
cout << '\n';
}
}
while (std::next_permutation(v.begin(), v.end()));

关于C++ next_permutation 没有以相反的顺序列出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32421759/

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