从栈说起
(1)栈限制在结构的一端进行插入和删除操作
(2)允许插入和删除操作的一端称为栈顶,另一端称为栈底
问题来了:假定用int数组来存储栈里的数据,能否建立一个“栈”类?
建立int型的栈类:
那如果要建立char,double型的栈类呢?
换成其他类型可以吗?
比如string,比如某种struct都是可以的。
建立抽象的类模板:
类模板:
(1)类是对问题空间的抽象,而类模板则是对类的抽象,是对一批仅仅成员 数据类型 不同的类的抽象。
(2)程序中可以首先定义一个类模板,然后通过使用不同的实参生成不同的类。
类模板的定义格式:
类模板的使用方法:
格式: 类模板名 <数据类型> 对象名;
比如: stack <int> s1; //定义一个整数类型栈
stack <char> s2; //定义一个字符类型栈
注意:在C++的标准模板库(STL)中,定义了大量类模板(其中也包括栈),使用这些优秀的类模板可以提高编程效率,提高程序可靠性。
1