template44.c

来自「this is a gcc file, you can download it 」· C语言 代码 · 共 62 行

C
62
字号
#include <stdlib.h>#include <string.h>template <class T>class List {public:    int len;    T *array;    int length() const { return( len ); }    List() : len( 0 ), array( 0 ) {}};template <class T>int AlgoStdCompare(const T* a, const T* b) {  if (*a < *b)    return -1;  else    return (*a > *b);	// 0 if equal, 1 if greater}int AlgoStdCompare(const char* const* a, const char * const*b){    return strcmp(*a,*b);}     template <class T>void AlgoFixupSort(List< T >* , int, int ) {}template <class T> void AlgoSort(int (*compare)(const T *, const T *),	  void (*fixup)( List<T> *, int first, int last),	  List< T >* theList, int first, int last) {  if (last < 0)    last = theList->length()-1;    qsort(theList->array+first, last-first+1, sizeof(T),	(int (*)(const void *, const void *))compare);  if (fixup)    fixup(theList, first, last);}template <class T> void AlgoSort(List< T >* theList, int first = 0, int last = -1) {  int (*compare)(const T*, const T*) = AlgoStdCompare;  void (*fixup)( List<T> *, int first, int last) = AlgoFixupSort;    AlgoSort(compare, fixup, theList, first, last);}intmain(){    List<const char *> slist;    AlgoSort( &slist );    List<int> ilist;    AlgoSort( &ilist );}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?