如何对双阵列进行排序

How to sort double array?

本文关键字:排序 阵列      更新时间:2023-10-16

我遵循了一个双阵列:

double myArray[4] = {0.0, 5.0, 2.1, 99.1};

,但我不知道如何对这个数组(最小值(或另一个方向进行排序。我在研究中发现的只是代码,如何对向量进行分类。

所以我的问题。如何以正确的方式在此数组上应用排序例程?

double myArray[4] = {0.0, 5.0, 2.1, 99.1};
std::sort(myArray.begin(), myArray.end(), [](const double& a, const double& b) {
                return a > b;
            }); // not working this way

这样做:

std::sort(std::begin(myArray), std::end(myArray), comparator);

std::beginstd::end是免费功能,默认情况下,只需返回 x.begin()/ x.end(),因此它们与标准容器一起使用-std::liststd::vectorstd::array等。这些功能也适用于普通的旧C阵列,使其适用上述代码。

您也可以将指针直接扔进std::sort,因为指针是迭代器:

std::sort(myArray, myArray + 4, comparator);

但是,这要求您指定数组的大小(尽管可以自动完成(,并且一旦将myArray更改为std::vector

请注意,如果您不指定比较器,则std::sort使用std::less,这意味着默认情况下它按升序顺序排序。如果您需要降序,则可以指定std::greater

std::sort(std::begin(myArray), std::end(myArray), std::greater<double>{});