gwgirl 发表于 2022-1-26 09:38

C++ 模板用法 的简易代码

运行环境:
如 WIN10
涉及工具:
如 VS
编程语言:
C、C++

以下为主题内容:

void sort(int* arr, int length)                                                                        //函数只能针对Int类型排序
{
        for (int i = 0; i < length; i++)
        {
                for (int j = 0; j < length; j++)
                {
                        if (arr < arr)
                        {
                                arr = arr + arr;
                                arr = arr - arr;
                                arr = arr - arr;
                        }
                }
        }
}

void SortByChar(char* arr, int length)                                        //函数只能针对char类型排序
{
        for (int i = 0; i < length; i++)
        {
                for (int j = 0; j < length; j++)
                {
                        if (arr < arr)
                        {
                                arr = arr + arr;
                                arr = arr - arr;
                                arr = arr - arr;
                        }
                }
        }
}

template<class T>                                                                                        //如果需要替换两处,那就在定义一个class S 名字随便取
void SortByTemplate(T* arr, int length)                        //使用模板实现两个类型用一个函数进行排序
{
        for (int i = 0; i < length; i++)
        {
                for (int j = 0; j < length; j++)
                {
                        if (arr < arr)
                        {
                                int temp = arr;
                                arr = arr;
                                arr = temp;                               
                        }
                }
        }
}

class Base       
{
public:
        int x;
        int y;

        char a;
        char b;

        Base(int x, int y)
        {
                this->x = x;
                this->y = y;
        }
        int Getx()
        {
                return x;
        }
        int Gety()
        {
                return y;
        }
        bool operator<(Base& base)
        {
                return this->x < base.x&& this->y < base.y;
        }
};

int main2()
{
        int arr = { 97,98,99,100,101,102,103,104,105,106 };        //调用函数int排序 void sort(int* arr, int length)
        sort(arr, 10);
        for (int i = 0; i < 10; i++)
        {
                printf("%d ", arr);
        }
        printf("\nint类型排序\n\n");

        char cArr = { 97,98,99,100,101,102,103,104,105,106 };//调用函数char排序 void SortByChar(char* arr, int length)
        SortByChar(cArr, 10);
                for (int i = 0; i < 10; i++)
                {
                        printf("%c ", arr);
                }
        printf("\nchar类型排序\n\n");

        SortByTemplate(arr, 10);                                //使用一个函数 排序两种不同类型数组 int类型               (模板使用)
                for (int i = 0; i < 10; i++)
                {
                        printf("%d ", arr);
                }
        printf("\n模板 int类型排序\n\n");

        SortByTemplate(cArr, 10);                        //使用一个函数 排序两种不同类型数组 char类型       (模板使用)
        for (int i = 0; i < 10; i++)
        {
                printf("%c ", cArr);
        }
        printf("\n模板 int类型排序\n\n");

        Base b1(1, 1), b2(3, 3), b3(6, 6), b4(2, 2), b5(9, 9), b6(7, 7);
        Base Barr[] = { b1,b2,b3,b4,b5,b6 };

        for (int i = 0; i < 6; i++)
        {
                printf("%d %d\n", Barr.Getx(), Barr.Gety());
        }
        printf("\n结构体模板 Base类型排序前\n\n");

        SortByTemplate(Barr, 6);
        for (int i = 0; i < 6; i++)
        {
                printf("%d %d\n", Barr.Getx(), Barr.Gety());
        }
        printf("\n结构体模板 Base类型排序后\n\n");

       
        return 0;
}

longge188 发表于 2022-1-26 17:27

学破解防逆向,知进攻懂防守!

GSkulFOjfAW 发表于 2022-1-27 19:31

大佬无敌

CYTNRFji381 发表于 2022-1-27 20:51

谢谢分享

xcCpAtuOdra 发表于 2022-1-27 21:03

帮顶一下

凉面61279 发表于 2022-1-28 12:23

感谢楼主

zKQcE267 发表于 2022-1-28 12:23

感谢楼主

eklSC40 发表于 2022-1-28 12:23

谢谢分享

JaKFGXc1 发表于 2022-1-28 12:23

无敌了!你怎么知道我想要什么!

pHDonSI 发表于 2022-1-28 18:26

大佬无敌
页: [1] 2 3 4 5 6 7
查看完整版本: C++ 模板用法 的简易代码