美文网首页C++
使用C++ STL的next/prev_permutation函

使用C++ STL的next/prev_permutation函

作者: codinRay | 来源:发表于2017-04-07 20:54 被阅读0次

使用C++ STL的next_permutation函数可以简单的枚举出一个升序排列的字符串的全排列,它包含在头文件<algorithm>里。

用C类型字符串举一个例子:

int main() {
    char str[] = "321";
    int len = strlen(str);
    sort(str, str + len);
    puts(str);
    while(next_permutation(str, str + len)) {
        puts(str);
    }
    return 0;
}

另外,prev_permutation函数可以枚举出一个降序排列的字符串的全排列。

为了使字符串更方便的被降序排列,我们引入:

sort(arr, arr + size, greater<int>());

用以上的方式可以将int类型数组arr降序排列,同理可以使用在字符串上。

所以:

int main() {
    char str[] = "132";
    sort(str, str + strlen(str), greater<int>());
    while(prev_permutation(str, str + strlen(str)))
        puts(str);
    return 0;
}

相关文章

  • 使用C++ STL的next/prev_permutation函

    使用C++ STL的next_permutation函数可以简单的枚举出一个升序排列的字符串的全排列,它包含在头文...

  • STL之排列组合

    next_permutation() 正序 example 1,2,3 prev_permutation() ...

  • 全排列

    对于函数prev_permutation()与next_permutation()全排列的用法直接观察输入输出,一...

  • C++STL自己总结

    STL部分 1.STL为什么广泛被使用 C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vec...

  • C++中的for 循环

    最传统的循环方式在C++ 1998 标准中的循环方式 使用STL中的for_each使用stl 中提供的for_e...

  • leetcode刷题02--求链表交点--T160

    题目: 思路一:可以使用c++自带的stl库中的set集合来进行查找知识补充:stl中set的使用: 其实set就...

  • 读书笔记17.06.03

    C++ STL:Listlist是C++标准模版库(STL,Standard Template Library)中...

  • 全排列生成算法 next_permutation

    概念 全排列的生成算法有很多种,有递归遍例,也有循环移位法等等。C++/STL中定义的next_permutati...

  • C++ STL 之 vectot(四)

    今天我们继续更新 C++ STL 中 vector 容器的使用 vector 容器删除元素 使用 clear() ...

  • [C++] STL 容器

    参考:[C++] STL 容器 (一) - 基本介紹[C++] STL 容器 (二) - Iterator 部分示例:

网友评论

    本文标题:使用C++ STL的next/prev_permutation函

    本文链接:https://www.haomeiwen.com/subject/euckattx.html