以下是一个使用模板方法完成数组冒泡排序的示例代码:

#include <iostream>
#include <string>

using namespace std;

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]) {
                swap(arr[j], arr[j + 1]);
            }
        }
    }
}

int main() {
    int int_arr[] = { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5 };
    string str_arr[] = { "apple", "banana", "cherry", "durian", "elderberry" };

    int int_arr_len = sizeof(int_arr) / sizeof(int);
    int str_arr_len = sizeof(str_arr) / sizeof(string);

    bubble_sort(int_arr, int_arr_len);
    bubble_sort(str_arr, str_arr_len);

    for (int i = 0; i < int_arr_len; i++) {
        cout << int_arr[i] << " ";
    }
    cout << endl;

    for (int i = 0; i < str_arr_len; i++) {
        cout << str_arr[i] << " ";
    }
    cout << endl;

    return 0;
}

在上面的示例代码中,我们定义了一个模板函数 bubble_sort,用于对传入的数组进行冒泡排序。该函数使用两层循环来遍历数组,并在内层循环中比较相邻的元素,如果它们的顺序不正确,则交换它们的位置。

main 函数中,我们创建了两个不同类型的数组 int_arrstr_arr,分别包含了整数和字符串类型的元素。我们通过 sizeof 运算符计算出数组的长度,并将它们作为参数传递给 bubble_sort 函数进行排序。最后,我们遍历排序后的数组,并将它们输出到控制台

编写一个模板方法完成数组的冒泡排序数组元素的数据类型可以是任意类型

原文地址: https://www.cveoy.top/t/topic/cOVG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录