模板函数+运算符的重载

#include<iostream>
using namespace std;
#define SIZE 5

class complex
{
public:
    int real;
    int imag;
public:
    inline int complex::operator <(const complex &c)
    {
    return real < c.real;
    }

    inline int complex::operator >(const complex &c)
    {
    return real > c.real;
    }
};

template<class ElementType>
void sort(ElementType a[], int len)
{
    for(int i=0; i<len; i++)
        for(int j=i+1; j<len; j++)
        {
            if(a[i] > a[j])
            {
                ElementType temp = a[j];
                a[j] = a[i];
                a[i] = temp;
            }
        }
}

int main()
{    
    int n = 5;
    int a[SIZE];
    complex vv[SIZE];
    for(int i = 0; i < n; i++)
    {
        scanf("%d%d", &vv[i].real, &vv[i].imag);
    }
    sort(vv,SIZE);
    for(int i=0; i<n; i++)
        printf("@%d %d
", vv[i].real, vv[i].imag);
    
    getchar();
    system("pause");
    return 0;
}
原文地址:https://www.cnblogs.com/ZP-Better/p/7079226.html