我有一个清单,比如说[1,2,3,4,3,2,4]。我想输出每个元素一次,例如[1,2,3,4]。我怎样才能在 Haskell 中做到这一点?
打印绝对排序数组。有关说明,请参阅示例输出。
input: arr = [2, -7, -2, -2, 0]
output: [0, -2, -2, 2, -7]
Run Code Online (Sandbox Code Playgroud)
现在我使用 lambda 函数作为 STL 的比较器,std::sort但它没有给出正确的答案;帮助将不胜感激。
代码:
vector<int> absSort(const vector<int>& at)
{
vector <int> arr = at;
sort(arr.begin(), arr.end(), [&](const int a, const int b){
if (abs(a) < abs(b)) return -1;
if (abs(a) > abs(b)) return 1;
if (a < b) return -1;
if (a > b) return 1;
return 0;
});
return arr;
}
Run Code Online (Sandbox Code Playgroud)