用c++ 编写一个选择排序的函数模板。
时间: 2024-02-18 14:31:56 浏览: 28
以下是一个使用模板实现选择排序的示例代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
template<typename T>
void selection_sort(vector<T>& arr) {
int n = arr.size();
for(int i=0; i<n-1; i++) {
int min_idx = i;
for(int j=i+1; j<n; j++) {
if(arr[j] < arr[min_idx]) {
min_idx = j;
}
}
if(min_idx != i) {
swap(arr[i], arr[min_idx]);
}
}
}
int main() {
vector<int> arr = {5, 2, 9, 4, 7};
selection_sort(arr);
for(int x : arr) {
cout << x << " ";
}
cout << endl;
return 0;
}
```
这里我们使用了 `vector` 容器,以便于存储任意类型的数据。`selection_sort` 函数接受一个 `vector<T>` 类型的参数,并通过模板来实现通用性。内部使用了嵌套的循环来实现选择排序的逻辑。最后,在主函数中演示了如何使用该函数进行排序并输出结果。