C++ 语言的核心优势之一就是便于软件的重用
C++中有两个方面体现重用:
1. 面向对象的思想:继承和多态,标准类库
2. 泛型程序设计(generic programming) 的思想:模板机制,以及标准模板库 STL
泛型程序设计,简单地说就是使用模板的程序设计法。
将一些常用的数据结构(比如链表,数组,二叉树)和算法(比如排序,查找)写成模板,以后则不论数据结构里放的是什么对象,算法针对什么样的对象,则都不必重新实现数据结构,重新编写算法。
标准模板库 (Standard Template Library) 就是一些常用数据结构和算法的模板的集合。主要由 Alex Stepanov 开发,于1998年被添加进C++标准
有了STL,不必再从头写大多的标准数据结构和算法,并且可获得非常高的性能。
1.假如设计一个求两参数最大值的函数,在实践中我们可能需要定义四个函数:
int max ( int a , int b ) { return ( a > b ) ? a : b ; }
long max ( long a , long b ) { return ( a > b ) ? a :b ;}
double max ( double a , double b ) { return ( a >b)? a :b ; }
char max ( char a , char b ) { return ( a > b ) ? a :b ;}
2.这些函数几乎相同,唯一的区别就是形参类型不同
3.需要事先知道有哪些类型会使用这些函数,对于未知类型这些函数不起作用
所谓模板是一种使用无类型参数来产生一系列函数或类的机制。
若一个程序的功能是对某种特定的数据类型进行处理,则可以将所处理的数据类型说明为参数,以便在其他数据类型的情况下使用,这就是模板的由来。
模板是以一种完全通用的方法来设计函数或类而不必预先说明将被使用的每个对象的类型。
通过模板可以产生类或函数的集合,使它们操作不同的数据类型,从而避免需要为每一种数据类型产生一个单独的类或函数。
1.求两个数最大值,使用模板
template < class T >
T max(T a , T b){
return ( a > b ) ? a , b;
}
2.template < 模板形参表>
<返回值类型> <函数名>(模板函数形参表)
{
//函数定义体
}
编写一个对具有n个元素的数组a[ ]求最小值的程序,要求将求最小值的函数设计成函数模板。
#include <iostream>
template <class T>
T min(T a[],int n)
{
int i;
T minv=a[0];
for( i = 1;i < n ; i++){
if(minv>a[i])
minv=a[i];
}
return minv;
}
void main()
{ ina a[]={1,3,0,2,7,6,4,5,2};
double b[]={1.2,-3.4,6.8,9,8};
cout<<”a数组的最小值为:”
<<min(a,9)<< endl;
cout<<”b数组的最小值为:”
<<min(b,4)<<endl; }
此程序的运行结果为:
a数组的最小值为:0
b数组的最小值为:-3.4
分享到:
相关推荐
c++文件模板 c++文件模板 c++文件模板 c++文件模板 c++文件模板 c++文件模板 c++文件模板 c++文件模板 c++文件模板 c++文件模板 c++文件模板 c++文件模板 c++文件模板 c++文件模板 c++文件模板 c++文件模板 c++文件...
《C++标准模板库编程实战》介绍最新的C++14标准的API、库和扩展,以及如何将它们运用到C++14程序中。在书中,作者Ivor Horton 则阐述了什么是STL,以及如何将它们应用到程序中。我们将学习如何使用容器、迭代器,...
C++模板类型题型,更全面,也可以更从中了解模板的运用与技术。
C++模板元编程,ISBN:9787111267423,作者:(美)大卫 等著,荣耀 译 原作名: C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond 出版年: 2010-1 页数: 277
C++模板与STL库介绍 非常详细
c++ 标准 模板库 与谭浩强决然不同的阐述
Microsoft Visual C++ 6.0 模板库参考手册Microsoft Visual C++ 6.0 模板库参考手册Microsoft Visual C++ 6.0 模板库参考手册Microsoft Visual C++ 6.0 模板库参考手册
C++中类模板的编译方法.pdf\C++中类模板的编译方法.pdf
C++之模板编程,分析清晰合理,源自不错的学者,转载原文有注释
有助于你深入地学习,理解c++类模板相关技术。由简单到复杂逐渐深入学习。
本书是c++模板编程的完全指南,旨在通过基本概念,常用技巧和使用实例3方面的有用资料,为读者打下c++模板坚实的基础
c++ 模板使用入门 c++ 模板使用介绍 pdf
c++标准模板
C++标准模板库编程实战-书中所用代码C++标准模板库编程实战-书中所用代码
C++模板元编程.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!
谭浩强老师c++课本函数模板例题,c++函数模板使用,供大家学习使用。
C++类模板与STL编程,免费上传,好东西大家用
用C++模板方式实现自定义单链表,交流学习用
STM32L1 C++工程模板;尽量用高版本的keil打开