• 写点C++ 学习记录 充数


    #include "stdafx.h"
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int fcmp(const void* elem,const void* elem2);
    void sample1();
    void sample2();
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	sample1();
    	cout << "*******************" << endl;
    	sample2();
    
    	return 0;
    }
    
    
    template <class T>
    struct plus{
    	T operator()(const T& x,const T& y)const{return x+y;}
    };
    
    template <class T>
    struct minus{
    	T operator()(const T& x,const T& y)const{return x-y;}
    };
    
    void sample2()
    {
    	plus<int>plusobj;
    	minus<int>minusobj;
    
    	cout << plusobj(3,5) << endl;
    	cout << minusobj(3,5) << endl;
    
    	cout << plus<int>()(43,50) << endl;
    	cout << minus<int>()(43,50) << endl;
    
    }
    
    
    void sample1()
    {
    	int ia[10] = {32,92,67,58,10,4,25,52,59,54};
    	for(int i =0;i <10;i++)
    	{
    		cout << ia[i] << " ";
    	}
    	cout << endl;
    
    	qsort(ia,sizeof(ia)/sizeof(int),sizeof(int),fcmp);
    
    	for(int i =0;i <10;i++)
    	{
    		cout << ia[i] << " ";
    	}
    	cout << endl;
    }
    
    int fcmp(const void* elem1,const void* elem2)
    {
    	const int* i1 = (const int*)elem1;
    	const int* i2 = (const int*)elem2;
    
    	if(*i1 < *i2)
    		return -1;
    	else if(*i1 == *i2)
    		return 0;
    	else if(*i1 > *i2)
    		return 1;
    }
    

    传递函数指针与function call 示例

  • 相关阅读:
    frog-jump
    nth-digit
    binary-watch
    elimination-game
    evaluate-division
    random-pick-index
    integer-replacement
    rotate-function
    longest-substring-with-at-least-k-repeating-characters
    decode-string
  • 原文地址:https://www.cnblogs.com/itdef/p/4366877.html
Copyright © 2020-2023  润新知