sac*_*sac 2 c++ sorting stl absolute-value
我正在尝试使用 stl sort 函数根据绝对值对给定数组进行排序,但它没有按指定顺序排序:我编写的代码:
int fun(int i,int j)
{
if(abs(i)<abs(j))
return j;
else
return i;
}
int main()
{
int arr[100000];
int i,n;
cin>>n;
for(i=0;i<n;i++)
cin>>arr[i];
sort(arr,arr+n,fun);
int diff=1000000ll;
int x=0;
int y,z;
for i 0 to n
cout<<arr[i];
return 0;
}
Run Code Online (Sandbox Code Playgroud)
最容易使用...
std::sort(arr, arr+n, [](int i, int j) { return abs(i) < abs(j); });
Run Code Online (Sandbox Code Playgroud)
...并fun完全放弃。
如果您真的想要一个可重用的函数(而不是上面的“lambda”),请查看这里的cppreference 示例- 特别是customLess.