使用cpp模板写一段排序
时间: 2023-01-15 15:59:00 浏览: 133
好的,这是使用 C++ 模板来写的一段排序的代码:
```
template <typename T>
void sort(T arr[], int size)
{
for (int i = 0; i < size - 1; i++)
{
for (int j = i + 1; j < size; j++)
{
if (arr[i] > arr[j])
{
T temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
```
这段代码使用了模板,因此可以用来排序任意类型的数组。要使用这段代码,只需要在调用时传入数组和数组的大小即可。例如:
```
int arr[] = {3, 1, 2};
sort(arr, 3);
```
这样,数组 `arr` 就会被按升序排序。
希望这能帮到你!
相关问题
用C++写一段置换选择排序代码模板
下面是一段使用模板实现的置换选择排序的C++代码:
```cpp
#include <iostream>
#include <vector>
using namespace std;
template<typename T>
void swap(T& a, T& b)
{
T temp = a;
a = b;
b = temp;
}
template<typename T>
void selectionSort(vector<T>& arr)
{
int n = arr.size();
for (int i = 0; i < n; 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, 8, 4, 1, 3};
selectionSort(arr);
for (auto x : arr)
{
cout << x << " ";
}
return 0;
}
```
这段代码中,我们使用了模板来泛化数据类型。通过这种方式,我们可以使用相同的代码来对任何类型的数组进行排序。我们首先定义了一个swap函数,用于交换数组中的元素。然后是selectionSort函数,它使用嵌套的循环来查找最小元素,并将其与当前位置交换。最后,我们在main函数中创建了一个整数数组并对其进行排序。
我写了一段冒泡排序的模板,但不知道怎么写测试代码
当您编写冒泡排序的模板时,测试代码可以用来验证您的代码是否正确。下面是一个示例测试代码,用于测试冒泡排序的模板:
```cpp
#include <iostream>
#include <vector>
using namespace std;
template<typename T>
void bubbleSort(vector<T>& arr) {
int n = arr.size();
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
swap(arr[j], arr[j + 1]);
}
}
}
}
int main() {
// 创建一个整数向量
vector<int> nums = {5, 2, 8, 3, 1};
// 调用冒泡排序模板函数
bubbleSort(nums);
// 打印排序后的结果
cout << "排序后的结果:";
for (int num : nums) {
cout << num << " ";
}
return 0;
}
```
在这个示例中,我们首先创建了一个整数向量 `nums`,其中包含一些无序的整数。然后,我们调用了冒泡排序的模板函数 `bubbleSort()`,对 `nums` 进行排序。最后,我们使用循环打印排序后的结果。
您可以根据需要修改向量 `nums` 中的元素,或者使用其他类型的向量进行测试。
希望这可以帮助到您!如果您还有其他问题,请随时提问。
阅读全文