📌  相关文章
📜  在C++中使用STL对数组进行的所有排列(1)

📅  最后修改于: 2023-12-03 15:07:52.413000             🧑  作者: Mango

在C++中使用STL对数组进行的所有排列

在C++中,我们可以使用STL库中的next_permutation函数对数组进行全排列操作。

代码示例

下面是一个简单的示例程序:

#include <iostream>
#include <algorithm>

using namespace std;

int main() {
    int arr[] = {1, 2, 3};

    sort(arr, arr + 3);

    do {
        cout << arr[0] << " " << arr[1] << " " << arr[2] << endl;
    } while (next_permutation(arr, arr + 3));

    return 0;
}

在这个示例中,我们首先定义了一个整型数组arr,包含了123三个元素。然后我们使用sort函数将数组从小到大排序。

接下来,我们使用do-while循环和next_permutation函数对数组进行全排列操作,直到所有排列都输出完毕为止。

运行结果

程序的运行结果如下:

1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

可以看到,程序输出了数组{1, 2, 3}的所有排列方式。

总结

通过使用STL库中的next_permutation函数,我们可以方便地对数组进行全排列操作,省去了手动编写排列算法的繁琐工作。同时,由于STL库中的函数都经过了充分的测试和优化,因此使用STL库也可以提高程序的性能和可靠性。