c vector sort
时间: 2023-10-23 14:30:26 浏览: 82
你可以使用C语言中的标准库函数`qsort`来对C语言中的向量(数组)进行排序。这个函数需要传入一个比较函数来确定排序顺序。下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 比较函数
int compare(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
int main() {
int vector[] = {4, 2, 1, 3, 5};
int size = sizeof(vector) / sizeof(vector[0]);
// 使用qsort函数对向量进行排序
qsort(vector, size, sizeof(int), compare);
// 打印排序后的向量
for (int i = 0; i < size; i++) {
printf("%d ", vector[i]);
}
printf("\n");
return 0;
}
```
以上代码中,我们定义了一个整型向量`vector`,然后使用`qsort`函数对其进行排序。比较函数`compare`使用指针转换来获取向量元素的值进行比较。最后,我们打印出排序后的向量。
输出结果为:1 2 3 4 5,表示向量已经按升序排序。
相关问题
vectorc++ sort
在C++中,`sort`函数是一个非常常用的标准库算法,它用于对容器(如`std::vector`)中的元素进行排序。`std::sort`通常作用于`std::vector`的迭代器范围,例如:
```cpp
#include <algorithm>
#include <vector>
// 假设我们有一个整数类型的vector
std::vector<int> vec = {5, 2, 8, 1, 9};
// 调用sort函数进行升序排序
std::sort(vec.begin(), vec.end());
```
这里的`vec.begin()`返回的是容器的起始迭代器,`vec.end()`返回的是容器结束迭代器(不包含容器最后一个元素),这两个迭代器构成了待排序元素的范围。
`std::sort`支持自定义比较函数,如果你需要按照特定规则排序,可以提供一个函数作为第二个参数。比如按字符串长度排序:
```cpp
bool compare(const std::string& a, const std::string& b) {
return a.length() < b.length();
}
std::vector<std::string> strings = {"abc", "defg", "xyz"};
std::sort(strings.begin(), strings.end(), compare);
```
vectorc++ sort降序
在C++中,`vector` 是一个动态数组容器,如果你想要对它里面的元素进行降序排序,你可以使用标准库中的 `sort` 函数配合自定义的比较函数来实现。这里是一个简单的例子:
```cpp
#include <algorithm> // 包含sort函数
#include <vector>
#include <iostream>
bool compare(int a, int b) {
return a > b; // 使用大于运算符返回true表示a应该排在b前面,即降序排列
}
int main() {
std::vector<int> vec = {5, 2, 9, 1, 7}; // 假设这是一个整数向量
// 对vec进行降序排序
std::sort(vec.begin(), vec.end(), compare);
for (const auto& element : vec) {
std::cout << element << " ";
}
return 0;
}
```
在这个例子中,`compare` 函数告诉 `sort` 函数元素应该按照降序排列。运行程序,你会看到输出的是从大到小排列的数字。
阅读全文