如何在C ++中使用C中的大多数语言的向量或内置排序函数?我试图为C程序排序一个数组。它可以用一个带有排序实现的简单代码来解释吗?我是C ++的新手。
答案 0 :(得分:5)
答案 1 :(得分:3)
std::sort
有一个代码示例:
std::array<int, 10> s = {5, 7, 4, 2, 8, 6, 1, 9, 0, 3};
// sort using the default operator<
std::sort(s.begin(), s.end());
for (int a : s) {
std::cout << a << " ";
}
std::cout << '\n';
输出:
0 1 2 3 4 5 6 7 8 9
答案 2 :(得分:0)
这是一个用于排序字符串的qsort示例,用于排序和打印传递的参数:
#include <string.h>
static inline int cmp(const void *a, const void *b){
return strcmp(*(const char **)a, *(const char **)b);
}
int main(int argc, char *argv[]){
qsort(++argv, --argc, sizeof(char *), cmp);
while (argc){
write(1,argv[0],strlen(argv[0]));
write(1,(--argc && argv++)?"\t":"\n",1);
}
}
对于其他类型,只需在cmp()函数中用a-b替换strcmp,并交换顺序以更改升序与降序。
答案 3 :(得分:-1)
此方法使用内置排序算法,并根据输入数组更改其时间复杂度。
1. #include <bits/stdc++.h>
using namespace std;
int main()
{
int arr[] = {1, 5, 8, 9, 6, 7, 3, 4, 2, 0};
int n = sizeof(arr)/sizeof(arr[0]);
sort(arr, arr+n); //sort(arr, arr+n, greater<int>()); for descending
cout << "\nArray after sorting
using "
"default sort is : \n";
for (int i = 0; i < n; ++i)
cout << arr[i] << " ";
return 0;
}