排序,对namespace深入理解,命令行参数
2017-09-04 12:41
120 查看
/* 项目名称:命令行参数添加判断,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; }
相关文章推荐
- 深入理解Java内存模型(二)——重排序
- 深入理解struts2的namespace
- 深入理解ElasticSearch(六)排序与相关性
- 深入理解Java内存模型(二)——重排序
- 深入理解JVM(二)——内存模型、可见性、指令重排序
- 深入理解JVM(二)——内存模型、可见性、指令重排序
- 深入理解Java内存模型(二)——重排序
- 深入理解Java内存模型(二)——重排序
- javaAPI深入理解(2)Collection,List的设计,ListIterator与Iterator,RandomAccess,List排序、逆序以及其他
- 深入理解C#:排序
- 深入理解JVM(二)——内存模型、可见性、指令重排序
- [置顶] 深入理解快速排序
- 深入理解 c# 第一章 使用IComparer<Product>委托 对 List <Product> 进行排序
- 【笔试面试知识点查缺补漏深入理解之C与C++篇】排序的C语言实现-插入-选择-快排
- 深入理解Java内存模型(二)——重排序
- Atitit 深入理解命名空间namespace java c# php js
- JDK学习---深入理解Comparator、TreeSet、TreeMap为什么可以排序
- 深入理解Java内存模型(二)——重排序
- 深入理解PHP多维数组排序原理
- 深入理解Java内存模型(二)——重排序http://www.infoq.com/cn/articles/java-memory-model-2