排序,对namespace深入理解,命令行参数

来源:互联网 发布:伤不起dj网络歌手 编辑:程序博客网 时间:2024/06/05 08:24
/*项目名称:命令行参数添加判断,namespace区分2个排序项目负责人:猴子项目运行环境:VS2010学习目标:排序,对namespace理解关键字::: 
如果将:bool swap_one(int a,int b){}当作参数传入:bool (*p)(int ,int){}在namespace中:bool (*p)(int a,int b){}在命令行参数需要在编译器软件里面添加,而不是传入。*/#include "stdafx.h"#include <iostream>#include <cstring>using namespace std;//bool swap_one(int a,int b){ //升序//if (a > b){//return true;//}//else{//return false;//}//}//bool swap_two(int a,int b){ //降序//if (a < b){//return true;//}//else{//return false;//}//}////冒泡算法//void srot(int (&data)[10], bool (*px)(int , int )){//cout << "sizeof(data) " << sizeof(data) << " sizeof(data[0]) " << sizeof(data[0]) << endl;////将函数当作参数传入,长度就用下面来表示//int len = sizeof(data)/sizeof(data[0]);//for (int i = 0; i < len; i++){//for (int j = 0; j < len-1; j++){//if (px(data[j],data[j+1] )){//int temp = data[j];//data[j] = data[j+1];//data[j+1] = temp;//}//}//}////}//输出数据void show(int* date ,int len){for (int i = 0;i < len;i++){cout << date[i] << " ";}cout << endl;}//函数定义的时候要定义成函数指针namespace hig{bool swap_one(int a,int b){ //升序if (a > b){return true;}else{return false;}}void srot(int (&data)[10], bool(*px)(int a, int b)){cout << "sizeof(data) " << sizeof(data) << " sizeof(data[0]) " << sizeof(data[0]) << endl;//将函数当作参数传入,长度就用下面来表示int len = sizeof(data)/sizeof(data[0]);for (int i = 0; i < len; i++){for (int j = 0; j < len-1; j++){if (px(data[j],data[j+1] )){int temp = data[j];data[j] = data[j+1];data[j+1] = temp;}}}}};namespace sho{bool swap_one(int a,int b){ //降序if (a < b){return true;}else{return false;}}void srot(int (&data)[10], bool(*px)(int a, int b)){cout << "sizeof(data) " << sizeof(data) << " sizeof(data[0]) " << sizeof(data[0]) << endl;//将函数当作参数传入,长度就用下面来表示int len = sizeof(data)/sizeof(data[0]);for (int i = 0; i < len; i++){for (int j = 0; j < len-1; j++){if (px(data[j],data[j+1] )){int temp = data[j];data[j] = data[j+1];data[j+1] = temp;}}}}};int _tmain(int argc, _TCHAR* argv[]){for (int i = 0;i < argc; i++){//输出命令参数行数据cout << i << argv[i] << endl; }//用户输入cin >> *argv;//判断输入数据是否和命令参数行相同
//利用strcmp进行辅组比较for (int i = 0;i < argc; i++){if (strcmp(argv[i],"张飞")== 0 ||strcmp(argv[i],"关羽")== 0 ||strcmp(argv[i],"诸葛亮")== 0 ||strcmp(argv[i],"吕布")== 0 ||strcmp(argv[i],"鳌拜")== 0){cout << "你确定你不是貂蝉?" << endl;break;}else{cout << "输入错误?" << endl;break;}}//数组初始化int arr[10] = {1, 4, 6, 7, 17, 15, 71, 12, 65, 10};//调用函数//升序hig::srot(arr, hig::swap_one); show(arr, 10);//降序sho::srot(arr, sho::swap_one);show(arr, 10);getchar();return 0;}

 
原创粉丝点击