如何在c++中,编程一个模板类函数。要求能实现冒泡排序
时间: 2024-02-01 14:16:35 浏览: 67
下面是一个模板类函数,可以实现冒泡排序:
```cpp
template <typename T>
void bubble_sort(T arr[], int n) {
for (int i = 0; i < n - 1; ++i) {
for (int j = 0; j < n - i - 1; ++j) {
if (arr[j] > arr[j + 1]) {
T temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
```
使用方法如下:
```cpp
int arr[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
int n = sizeof(arr) / sizeof(int);
bubble_sort(arr, n);
// 现在数组 arr 已经被排序
```
注意,这个模板类函数可以用于任何类型的数组(只要支持比较运算符 `<` 即可)。如果需要使用自定义类型,需要重载 `<` 运算符。例如:
```cpp
struct Person {
std::string name;
int age;
bool operator<(const Person& other) const {
return this->age < other.age;
}
};
Person people[] = {{"Alice", 23}, {"Bob", 18}, {"Charlie", 32}};
int n = sizeof(people) / sizeof(Person);
bubble_sort(people, n);
// 现在 people 数组已经按照年龄从小到大排序
```
阅读全文