冒泡算法c++ 使用模板进行份文件编写代码
时间: 2024-01-08 19:02:23 浏览: 87
当使用模板进行冒泡排序算法的分文件编写时,可以按照以下方式进行:
**main.cpp:**
```cpp
#include <iostream>
#include "bubble_sort.h"
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
bubbleSort<int>(arr, n);
std::cout << "排序后的数组:\n";
for (int i = 0; i < n; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
return 0;
}
```
**bubble_sort.h:**
```cpp
#ifndef BUBBLE_SORT_H
#define BUBBLE_SORT_H
template<typename T>
void bubbleSort(T arr[], int n);
#endif
```
**bubble_sort.cpp:**
```cpp
#include "bubble_sort.h"
template<typename T>
void bubbleSort(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]) {
// 交换arr[j]和arr[j+1]
T temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// 显式实例化模板函数,以便在链接时生成代码
template void bubbleSort<int>(int arr[], int n);
```
在这个例子中,我们使用模板函数 `bubbleSort`,它可以接受不同类型的数组进行排序。`bubbleSort` 函数的定义和实现在 `bubble_sort.cpp` 文件中,而函数的声明在 `bubble_sort.h` 文件中。
需要注意的是,在 `bubble_sort.cpp` 文件的末尾,我们使用了显式实例化模板函数的方式,以便在链接时生成代码。
编译和运行这个程序与之前相同,确保"main.cpp"、"bubble_sort.h"和"bubble_sort.cpp"这三个文件处于同一个目录下,并使用C++编译器进行编译。
阅读全文