sort小芝士

我不会使用sort。你信吗。

关于sort,最常见的用法就是拿来排序。而用来排序时它一般会带两个或三个参数,分别是排序区间首地址,排序区间尾地址,以及一个可有可无的cmp函数。

问题在于,首地址和尾地址怎么计算?

众所周知数组名本质上是一个指针,指向数组第一个元素的位置。什么意思呢,这句话就是说对于一个数组a,总是会有a==&a[0]

现在就可以发现假如要对[l,r]的元素进行排序,那么我们需要写的就是sort(a+l,a+r+1);

这不是废话吗。

主要是今天傍晚调某道cdq做四维偏序的题时调了两个小时都没有调出来,输出后发现sort函数没起作用……

结果是写成了sort(a+l+1,a+r+1);。我愣是没有发现。果然是思维定式。

我的两个小时啊啊啊啊。

愿后世引以为戒。

posted @ 2022-01-08 18:44  Feyn618  阅读(19)  评论(0编辑  收藏  举报