重新排列正整数和负整数,保持元素顺序

时间:2018-07-01 22:21:58

标签: c++ arrays sorting stl comparator

bool comp(int a, int b)
{

if((a >= 0 && b >= 0) || (a < 0 && b < 0))
    return false;

if ((a >= 0) && (b < 0))
    return false;
}

std::array<int, 9> arr = { -12, 11, -13, -5, 6, -7, 5, -3, -6 };
std::sort(arr.begin(),arr.end(),comp);

for (auto x : arr) {
    std::cout << x << " ";
}

输出:

  

-12 -13 -5 -7 -3 -6 11 6 5

当我浏览代码并遇到此比较器功能时。 我试图找到比较器实际上是如何工作的,但是却无法理解。通过比较器增加和减少数量非常容易。请说明这是怎么工作的。

0 个答案:

没有答案