std::qsort
来自cppreference.com
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
在头文件 <cstdlib> 中定义
|
||
void qsort( const void *ptr, size_t count, size_t size, int (*comp)(const void *, const void *) ); |
||
对给定的数组中指出,
ptr
升序排列。该数组包含count
元素的大小size
。功能指向的对象比较comp
用于.原文:
Sorts the given array pointed to by
ptr
in ascending order. The array contains count
elements of size size
. Function pointed to by comp
is used for object comparison.目录 |
[编辑] 参数
ptr | - | 要排序的数组的指针
|
count | - | 数组中的元素的数量
|
size | - | 大小(以字节为单位)的阵列中的每个元素
原文: size of each element in the array in bytes |
comp | - | comparison function which returns a negative integer value if the first argument is less than the second, a positive integer value if the first argument is greater than the second and zero if the arguments are equal. int cmp(const void *a, const void *b); The function must not modify the objects passed to it. |
[编辑] 返回值
(无)
[编辑] 注释
,否则该行为是未定义的数组元素的类型必须是一个“简单的类型”.
原文:
The type of the elements of the array must be a trivial type, otherwise the behavior is undefined.
[编辑] 示例
下面的代码使用
qsort()
的整数数组进行排序.
原文:
The following code sorts an array of integers using
qsort()
.
#include <iostream> #include <cstdlib> int compare_ints(const void* a, const void* b) // comparison function { int* arg1 = (int*) a; int* arg2 = (int*) b; if (*arg1 < *arg2) return -1; else if (*arg1 == *arg2) return 0; else return 1; } int main() { int a[] = { -2, 99, 0, -743, 2, 3, 4 }; int size = 7; std::qsort(a, size, sizeof(int), compare_ints); for (int i = 0; i < size; i++) { std::cout << a[i] << " "; } std::cout << '\n'; }
输出:
-743 -2 0 2 3 4 99
[编辑] 另请参阅
搜索一个数组元素的类型不明确 原文: searches an array for an element of unspecified type (函数) | |
将区间按升序排序 (函数模板) | |
(C++11) |
检查是否是标量类型 (类模板) |
C documentation for qsort
|