如何对双阵列进行排序
How to sort double array?
我遵循了一个双阵列:
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::begin
和 std::end
是免费功能,默认情况下,只需返回 x.begin()
/ x.end()
,因此它们与标准容器一起使用-std::list
,std::vector
,std::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>{});
相关文章:
- 仅在大型阵列上出现合并排序分段错误
- C :STL STL阵列的STL排序
- 为什么用std :: sort()对上升阵列(1〜100,000)排序比仅使用100,000次使用的速度要快
- 如何对双阵列进行排序
- 排序阵列会使指针链接错误
- 气泡阵列在C 实现中排序
- 按字母顺序排序阵列C
- 删除指向排序的字符串阵列的指针会在运行后会有一个错误
- 无法在阵列中重新排序元素-rapidjson
- 整数阵列合并排序比QuickSort快
- 计算以毫秒为单位的分类算法对整数阵列排序的时间
- 气泡排序问题不会更改输入阵列
- 排序浮动指针阵列
- C 排序字符串的动态阵列 - 排序不起作用
- 在子阵列C 中按第一个项目对数组进行排序
- 以合并排序确定侧阵列的大小
- 排序二维结构阵列
- 排序阵列的麻烦
- 在尺寸N的未排序阵列中找到最小的整数
- 插入阵列排序方法