首页 > 编程语言 > 详细

写点C++ 学习记录 充数

时间:2015-03-25 23:08:59      阅读:218      评论:0      收藏:0      [点我收藏+]
#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 示例

写点C++ 学习记录 充数

原文:http://www.cnblogs.com/itdef/p/4366877.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!