sort函数c++用法
时间: 2023-05-19 21:06:26 浏览: 98
sort函数是C语言中的一个标准库函数,用于对数组进行排序。它的用法如下:
void sort(void *base, size_t num, size_t size, int (*cmp)(const void *, const void *));
其中,base是待排序数组的首地址,num是数组中元素的个数,size是每个元素的大小,cmp是用于比较两个元素大小的函数指针。这个函数指针需要返回一个整数值,表示两个元素的大小关系。如果返回值小于0,则表示第一个元素小于第二个元素;如果返回值等于0,则表示两个元素相等;如果返回值大于0,则表示第一个元素大于第二个元素。
相关问题
sort函数结构体c++用法
在C++中,可以使用sort函数对结构体进行排序。下面是一个示例代码:
```c++
struct Person {
string name;
int age;
};
bool sortByAge(const Person &a, const Person &b) {
return a.age < b.age;
}
int main() {
vector<Person> people = {{"Alice", 25}, {"Bob", 30}, {"Charlie", 20}};
sort(people.begin(), people.end(), sortByAge);
for (const auto &person : people) {
cout << person.name << " " << person.age << endl;
}
return 0;
}
```
在这个示例中,我们定义了一个名为Person的结构体,其中包含两个成员变量:name和age。我们还定义了一个名为sortByAge的函数,用于比较两个Person对象的age成员变量,并根据其大小返回一个bool值。最后,在主函数中,我们创建了一个包含三个Person对象的vector,并使用sort函数将其按照age从小到大排序。最后,我们遍历排序后的vector,并输出每个Person对象的name和age成员变量。
总体来说,使用sort函数对结构体进行排序,需要定义一个比较函数,并将其作为sort函数的第三个参数传入。比较函数需要接收两个结构体对象作为参数,并返回一个bool值,以告诉sort函数它们的大小关系。
sort函数用法c++
在C++中,sort函数是用于对容器中的元素进行排序的函数。它可以对数组、向量、列表等容器进行排序操作。sort函数的用法如下:
```cpp
#include <algorithm> // 包含sort函数的头文件
// 定义一个比较函数,用于指定排序规则
bool compare(int a, int b) {
return a < b; // 升序排序
}
int main() {
int arr[] = {5, 2, 8, 1, 9};
// 对数组进行排序
std::sort(arr, arr + 5); // 默认升序排序
// 对数组进行降序排序
std::sort(arr, arr + 5, std::greater<int>());
// 对容器进行排序
std::vector<int> vec = {5, 2, 8, 1, 9};
std::sort(vec.begin(), vec.end()); // 默认升序排序
// 对容器进行降序排序
std::sort(vec.begin(), vec.end(), std::greater<int>());
// 使用自定义的比较函数进行排序
std::sort(vec.begin(), vec.end(), compare);
return 0;
}
```
在上述代码中,我们首先包含了<algorithm>头文件,该头文件中包含了sort函数的定义。然后我们可以使用sort函数对数组或容器进行排序。
对于数组,我们可以使用`std::sort(arr, arr + n)`来对数组进行排序,其中arr是数组的起始地址,arr + n是数组的结束地址。默认情况下,sort函数会按照升序进行排序。
对于容器,我们可以使用`std::sort(vec.begin(), vec.end())`来对容器进行排序,其中vec是容器的名称,begin()和end()函数分别返回容器的起始迭代器和结束迭代器。同样,默认情况下,sort函数会按照升序进行排序。
如果需要按照降序进行排序,可以使用`std::sort(arr, arr + n, std::greater<int>())`或`std::sort(vec.begin(), vec.end(), std::greater<int>())`,其中std::greater<int>()是一个函数对象,用于指定降序排序规则。
此外,我们还可以自定义比较函数来指定排序规则。在上述代码中,我们定义了一个compare函数,用于指定升序排序规则。然后在sort函数中使用`compare`作为第三个参数传入。
阅读全文