码迷,mamicode.com
首页 > 其他好文 > 详细

STL初探

时间:2019-08-18 17:55:21      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:span   target   nbsp   baidu   lan   ios   img   自己   style   

关于algorithm的一些东西

感言:

学C++不学STL函数库的人可能都是。。。

技术图片

 

有点问题

技术图片


 

 

 

头文件<algorithm>的一些东西

 

sort,快排:

这是个初学者必需掌握的东西,及其好用,因为方(lan)便(duo)。

sort(a+1,a+1+n);是最基本的,你还可以根据这个随意改变数组名称,区间范围(只要确定你需要排序数组的开头和结尾的数组的代号)

#include<iostream>
#include<algorithm>
using namespace std;
int n;
int main()
{
    cin>>n;
    int a[n+1];
    for(int i=1;i<=n;i++)
    cin>>a[i];
    sort(a+1,a+1+n);
    for(int i=1;i<=n;i++)
    cout<<a[i];
}

 

next_permutation与prev_permutation,不重复的全排列:

这玩意貌似没啥人知道,因为全排列可以自己打,而且STL本来就慢,但是因为方(lan)便(duo)还是挺好用的。这里介绍一下,next_permutation是按照字典序排列的全排列而prev_permutation则是逆字典序排列的。要使用这个东西,你必须确定你需要排列数组的值的

顺序!!!

例如,你用next_permutation排列(3,1,2)会得出(3,1,2);(3,2,1);

而用next_permutation排列(1,2,3)会得出(1,2,3);(1,3,2);(2,1,3);(2,3,1);(3,1,2);(3,2,1);

所以顺序很重要!!!如果你想要得出全部答案一个范围的排序,next_permutation你就从小到大来,prev_permutation你就从大到小来,值得一提的是这玩意返回值是bool类型的,偶买噶!!!;

#include<iostream>
#include<algorithm>
using namespace std;
int n;
int main()
{
    cin>>n;
    int a[n+1];
    for(int i=1;i<=n;i++)
    cin>>a[i];
    do
    {
        for(int i=1;i<=n;i++)
        cout<<a[i]<<" ";
        cout<<endl;
    }
    while(next_permutation(a+1,a+n+1));
}

 

 


 

持续更新中!!!

STL初探

标签:span   target   nbsp   baidu   lan   ios   img   自己   style   

原文地址:https://www.cnblogs.com/YYCether666/p/11372984.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!