1.数组初始化不容易报错 eg:a[10]={0};

2.next_permutation(num,num+n)函数是对数组num中的前n个元素进行全排列,同时并改变num数组的值。

例如:

include

include

using namespace std;
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()在使用前需要对欲排列数组按升序排序,否则只能找出该序列之后的全排列数。

3.sort
sort()函数可以对给定区间所有元素进行排序。它有三个参数sort(begin, end, cmp),其中begin为指向待sort()的数组的第一个元素的指针,end为指向待sort()的数组的最后一个元素的下一个位置的指针,cmp参数为排序准则,cmp参数可以不写,如果不写的话,默认从小到大进行排序。如果我们想从大到小排序可以将cmp参数写为greater()就是对int数组进行排序,当然<>中我们也可以写double、long、float等等。如果我们需要按照其他的排序准则,那么就需要我们自己定义一个bool类型的函数来传入。
自定义排序准则
  上面我们说到sort()函数可以自定义排序准则,以便满足不同的排序情况。使用sort()我们不仅仅可以从大到小排或者从小到大排,还可以按照一定的准则进行排序。比如说我们按照每个数的个位进行从大到小排序,我们就可以根据自己的需求来写一个函数作为排序的准则传入到sort()中。

include

include

using namespace std;

bool cmp(int x,int y){
return x % 10 > y % 10;
}

int main(){
int num[10] = {65,59,96,13,21,80,72,33,44,99};
sort(num,num+10,cmp);
for(int i=0;i<10;i++){
cout<<num[i]<<" ";
}//输出结果:59 99 96 65 44 13 33 72 21 80

return 0;

} 原文链接:https://blog.csdn.net/qq_41575507/article/details/105936466
tips:sort排序是左闭右开的,如a,a+10排列的是[0,10),a+1,a+n+1就是[1,n+1)

【SMU 2024 ACM新生培训枚举、排序、贪心】 https://www.bilibili.com/video/BV1AKmPYGEDd/?share_source=copy_web&vd_source=ed46d31bd93ec8f4384f6caeba4c6398
这个视频一小时十五分钟开始有结构体排序的讲解。感谢学长。

cout<<fixed<<setprecision(x)<< 是c++保留几位小数的函数,要保留几位,
就填几,记不住也可以用C语言的 printf("%.2lf",ans),不过要记住,c++的输入输出语法最好不要和C语言混用,要用printf,那么输入尽量也换成scanf。

10.23 0:23
相信你不止是R卡的