其他分享
首页 > 其他分享> > 得到的奇技淫巧

得到的奇技淫巧

作者:互联网

1.read()快读函数

read

2.快写函数

快写函数

3.蔡勒公式(根据年月日求星期)

蔡勒公式

4.全排列函数***(关于全排列的具体实现同sort()快排函数一样希望可以自己独立码出)***

next_permutation(start,end)和prev_permutation(start,end)

这两个函数区别在于前者求的是当前排列的下一个排列,而后者求的是当前排列的上一个排列
这里的“前一个”和“后一个”,我们可以把它理解为序列的字典序的前后
严格来讲,就是对于当前序列pn,他的下一个序列pn+1满足:不存在另外的序列pm,使pn<pm<pn+1.

对于next_permutation函数,其函数原型为:

 #include 
 bool next_permutation(iterator start,iterator end)

当目前序列不存在下一个排列时,函数返回false,否则返回true

栗子:

int main()
{
    int num[3]={1,2,3};
    do
    {
        cout<<num[0]<<" "<<num[1]<<" "<<num[2]<<endl;
    }while(next_permutation(num,num+3));
    return 0;
}

由此可以看出
next_permutation(num,num+n)函数是对数组num中的前n个元素进行全排列,同时并改变num数组的值

另::prex_permutation()应对的情况为{3,2,1}之类降序。

5.求字符串所有子串

1 void sub(string str) {
2     for (int i = 0; i < str.size(); i++)
3         for (int j = 1; j <= ((str.substr(i)).size()); j++)
4             cout << str.substr(i, j) << endl;
5 }

现在才仔细看原来是用了字符串类的方法。。。看样子这个类我了解的还是太少了

标签:排列,函数,int,得到,next,num,permutation,奇技淫巧
来源: https://www.cnblogs.com/xzmxiao/p/11373209.html