1:整形数和实型数编译器可以直接进行比较,所以使用函数模板后也可以直接进行比较,但如果是字符指针指向的字符串该如何处理呢?这时可以通过重载函数模板来实现。通常字符串需要库函数来进行比较,通过重载函数模板实现字符串的比较。

2:代码如下:

  1. // 9.2.cpp : 定义控制台应用程序的入口点。
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <iostream >
  6. #include <string >
  7. using namespace std;
  8. template<class Type>
  9. Type min(Type& a,Type& b) //定义函数模板
  10. {
  11. if(a < b)
  12. return a;
  13. else
  14. return b;
  15. }
  16. char min(char a,char b) //重载函数模板
  17. {
  18. if(strcmp(&a,&b))
  19. return b;
  20. else
  21. return a;
  22. }
  23. void main ()
  24. {
  25. cout << "最小值:" << min(,) << endl;
  26. cout << "最小值:" << min('a','b') << endl;
  27. string s1 = "hi";
  28. string s2 = "mr";
  29. cout << "最小值:" << min(s1,s2) << endl;
  30. }

运行结果:

在重载的函数模板min的实现中,使用strcmp库函数来完成字符串的比较,此时使用min函数可以比较整形数据、实型数据、字符数据和字符串数据。

C++入门经典-例9.2-重载函数模板,求出字符串的最小值的更多相关文章

  1. C++入门经典-例8.2-构造函数的访问顺序

    1:父类和子类中都有构造函数和析构函数,那么子类对象在创建时是父类先进行构造还是子类先进行构造?同样,在子类对象释放时,是父类先进行释放,还是子类先进行释放?这都是有先后顺序的.答案是当从父类派生一个 ...

  2. C++入门经典-例7.3-析构函数的调用

    1:析构函数的名称标识符就是在类名标识符前面加“~”.例如: ~CPerson(); 2:实例代码: (1)title.h #include <string>//title是一个类,此为构 ...

  3. C++入门经典-例6.3-字符串之未使用字符串结束符“\0”和使用字符串结束符“\0”的区别

    1:为字符串数组赋值的方式有两种,即数组元素逐一赋值和使用聚合方式赋值. 为数组元素逐一赋值.例如: pWord[0]='H'; 使用聚合方式赋值如: char pWord[]={'H','E','L ...

  4. C++入门经典-例4.4-循环嵌套之求n的阶乘

    1:代码如下: // 4.4.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> using ...

  5. C++入门经典-例3.10-根据输入的字符输出字符串

    1:代码如下: // 3.10.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #inc ...

  6. 《挑战30天C++入门极限》C++运算符重载函数基础及其值返回状态

        C++运算符重载函数基础及其值返回状态 运算符重载是C++的重要组成部分,它可以让程序更加的简单易懂,简单的运算符使用可以使复杂函数的理解更直观. 对于普通对象来说我们很自然的会频繁使用算数运 ...

  7. C++ Templates (1.5 重载函数模板 Overloading Function Templates)

    返回完整目录 目录 1.5 重载函数模板 Overloading Function Templates 1.5 重载函数模板 Overloading Function Templates 和普通函数一 ...

  8. 38 写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。

    题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度. public class _038PrintLength { public static void main(Stri ...

  9. 写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度

    import java.util.Scanner; /** * [程序38] * * 题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度. * * @author Jame ...

随机推荐

  1. 【Opencv 源码剖析】 一、 create函数

    1. inline Mat::Mat(int _rows, int _cols, int _type) : size(&rows) { initEmpty();//将data.cols.row ...

  2. Java Jersey的详情概述

    Jersey是一个RESTFUL请求服务JAVA框架,与常规的JAVA编程使用的struts框架类似,它主要用于处理业务逻辑层. 与springmvc 的区别: 1. jersey同样提供DI,是由g ...

  3. cpu 100%怎样定位

    先用top定位最耗cpu的java进程 例如: 12430工具:top或者 htop(高级)方法:top -c 显示进程运行详细列表键入 P (大写P),按照cpu进行排序 然后用top -p 124 ...

  4. Java程序员转行大数据的优势

    大数据时代,中国IT环境也将面临重新洗牌,不仅仅是企业,更是程序员们转型可遇而不可求的机遇. 国内大多数大型互联网公司的程序员被称作研发工程师,但实际上国内几乎没有研发项目,只能叫做开发.开发程序员的 ...

  5. TCP如何保证可靠传输(转)

    TCP协议传输的特点主要就是面向字节流.传输可靠.面向连接.这篇博客,我们就重点讨论一下TCP协议如何确保传输的可靠性的. 确保传输可靠性的方式TCP协议保证数据传输可靠性的方式主要有: 校验和 序列 ...

  6. void in javascript是一个指定要计算表达式但不返回值的运算符

    void in javascript是一个指定要计算表达式但不返回值的运算符.void运算符使用格式如下:1.javascript:void(表达式)2.javascript:void表达式表达式是要 ...

  7. Caffe测试单独的算子

    最近有一个需求是测试单独算子在CPU.Caffe使用的GPU.cuDNN上的性能,一个是使用caffe的time问题,还有一个是使用单独的test功能. time选项的使用,大家都比较熟悉,单独的te ...

  8. 上传图片,语音,和富文本(webuploader,dropzone, froala)

    首先是上传图片,使用的百度webuploader 自己修改后可以实例化多个uploader对象: HTML: <!DOCTYPE html> <html xmlns="ht ...

  9. mysql使用存储过程,批量生成测试数据

    1.存储过程代码 delimiter $$DROP PROCEDURE IF EXISTS create_service_data$$create procedure create_service_d ...

  10. MySQL添加唯一索引

    1 语法如下 ALTER TABLE `t_user` ADD unique(`username`);