标准库提供的std::sort函数对数组进行排序的使用实例
时间: 2024-10-06 11:04:26 浏览: 40
`std::sort`是C++标准库中的一个算法,它用于对容器中的元素进行排序。这个函数通常用于`std::vector`、`std::array`等随机访问容器。下面是一个简单的使用示例,对一个整数数组进行升序排序:
```cpp
#include <algorithm> // 包含sort函数
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers = {5, 2, 8, 1, 9}; // 待排序的整数数组
// 使用std::sort进行排序
std::sort(numbers.begin(), numbers.end());
// 打印排序后的数组
for (const auto &num : numbers) {
std::cout << num << " ";
}
std::cout << "\n";
return 0;
}
```
在这个例子中,`numbers.begin()`和`numbers.end()`是迭代器范围,指定了需要排序的部分。`std::sort`会按照默认的比较规则(对于`int`来说是小于)对元素进行排序。
相关问题
标准库提供的std::sort函数的使用实例
`std::sort`是C++标准模板库(STL)中用于对容器(如vector、array、deque等)中的元素进行排序的一个函数。它的基本语法如下:
```cpp
#include <algorithm> // 包含sort函数所在的头文件
#include <vector>
// 定义一个整数向量
std::vector<int> numbers = {5, 3, 8, 1, 9};
// 使用std::sort对向量进行升序排序
void sortExample() {
std::sort(numbers.begin(), numbers.end());
}
// 打印排序后的结果
void printNumbers() {
for (int num : numbers) {
std::cout << num << " ";
}
std::cout << "\n";
}
int main() {
sortExample();
printNumbers(); // 输出: 1 3 5 8 9
return 0;
}
```
在这个例子中,`numbers.begin()`和`numbers.end()`分别指定了排序范围的开始和结束迭代器,`std::sort`会按照默认的升序规则对这两个迭代器之间的元素进行排序。
注意,`std::sort`支持自定义比较函数,如果需要降序排列,可以提供一个负值的比较函数作为第三个参数。例如:
```cpp
bool compare(int a, int b) {
return a > b; // 或者 a >= b 如果你想得到非严格降序
}
std::sort(numbers.begin(), numbers.end(), compare);
```
#include <iostream> #include <vector> namespace my_std { using std::cin; using std::cout; using std::endl; using std::swap; using std::vector; } using namespace my_std; class MySort { public: /*选择排序*/ template<typename T> void SelectionSort(vector<T> &arr); }; void (SelectionPtr) (vector<int>) = &MySort::SelectionSort<vector<int>>; //指针函数
这段代码中定义了一个名为MySort的类,其中包含一个模板函数SelectionSort,用于对传入的vector进行选择排序。接着定义了一个函数指针SelectionPtr,指向了MySort类中SelectionSort函数的实例化版本,即对vector<int>进行排序的版本。由于函数指针的语法比较复杂,可以将其定义简化为:
```
using SelectionPtr = void (MySort::*)(vector<int>&);
```
这样就可以更清晰地看出SelectionPtr是一个指向MySort类的成员函数的指针,该成员函数接受一个vector<int>的引用作为参数,返回值为void。
阅读全文