C++程序设计_part 3 数据结构 chap15 模板
来源:互联网 发布:python 英文分词 编辑:程序博客网 时间:2024/06/10 19:54
#include <iostream>#include <string>using namespace std;/*C++允许定义具有通用类型的函数模板 *该程序定义了一个具有通用类型的两个值中秋较大者的模板函数 */template <typename T>T maxValue(T value1, T value2){ if(value1 > value2) return value1; else return value2;}int main(){ cout<<"Maximum between 1 and 3 is "<<maxValue(1,3)<<endl; cout<<"Maximum between 1.5 and 0.3 is "<<maxValue(1.5,0.3)<<endl; cout<<"Maximum between 'A' and 'N' is "<<maxValue('A','N')<<endl; cout<<"Maximum between \"ABC\" and \"ABD\" is "<<maxValue("ABC","ABD")<<endl; return 0;}
数据结果:
#include <iostream>#include <string>using namespace std;template <typename T>void sort(T list[], int arraySize){ //Find the maximum in the list[0...i] T currentMax = list[0]; for(int i = arraySize - 1; i >= 1; i-- ){ for(int j = 1; j <= i; j++){ if (currentMax < list[j]){ currentMax = list[j]; list[j] = list[i]; list[i] = currentMax; } } }}template <typename T>void printArray(T list[], int arraySize){ for(int i = 0; i < arraySize; i++) cout << list[i] <<" "; cout << endl;}int main(){ int list1[] = {3, 5, 1, 0, 2, 8, 7}; sort(list1, 7); printArray(list1, 7); double list2[] = {3.5, 0.5, 1.4, 0.4, 2.5, 1.8, 4.7}; sort(list2, 7); printArray(list2, 7); string list3[] = {"Atlanta", "Denver", "Chicago", "Dallas"}; sort(list3, 4); printArray(list3, 4); return 0;}
下面通过是一个栈实现用例,展现模板的用处
#ifndef STACK_H#define STACK_Htemplate <typename T>class Stack{public: Stack(); bool empty(); T peek(); void push(T value); T pop(); int getSize();private: T elements[100]; int size;};template <typename T>Stack<T>::Stack(){ size = 0;}template <typename T>bool Stack<T>::empty(){ return (size == 0);}template <typename T>T Stack<T>::peek(){ return elements[size - 1];}template <typename T>void Stack<T>::push(T value){ elements[size++] = value;}template <typename T>T Stack<T>::pop(){ return elements[--size];}template <typename T>int Stack<T>::getSize(){ return size;}#endif // STACK_H
#include <iostream>#include <string>#include "GenericStack.h"using namespace std;template<typename T>void printStack(Stack<T> &stack){ //定义了一个打印Stack的函数 while(!stack.empty()) cout << stack.pop() <<" "; cout << endl;}int main(){ //Create a stack of int values Stack<int> intStack; for(int i = 0; i < 10; i++) intStack.push(i); printStack(intStack); //Create a stack of strings Stack<string> stringStack; stringStack.push("Chicago"); stringStack.push("Los Angeles"); stringStack.push("London"); printStack(stringStack); return 0;}
0 0
- C++程序设计_part 3 数据结构 chap15 模板
- Chap15:基本JNI调用技术(c/c++与java互调)
- Windows C图形程序设计模板
- 数据结构之单链表C++(模板)
- 数据结构之双链表C++(模板)
- 数据结构(C++)----单链表模板类
- 数据结构(c++)最小堆模板类
- 数据结构程序设计
- C语言二级程序设计-公共基础知识选择题-数据结构与算法
- Spring框架参考手册_5.0.0_中文版_Part II_3.3
- 数据结构模板
- 数据结构模板
- 模板-数据结构
- [模板] 数据结构
- 模板(数据结构)
- 数据结构模板
- 数据结构模板
- 数据结构模板
- 静态查找与动态查找结构
- java遍历HashMap
- CCS V6环境配置MCSDK组件
- EularProject 38:数字组合1-9分解为数字与1到n的乘积的和
- 类的静态数据成员和静态成员函数
- C++程序设计_part 3 数据结构 chap15 模板
- 关于 Unsupported major.minor version 51.0的错误
- hibernate的各种保存方式的区别 (save,persist,update,saveOrUpdte,merge,flush,lock)等
- 营改增相关知识
- ftp telnet 自动批量
- 并发框架Disruptor译文
- 一页纸说清楚“什么是深度学习?”
- ARC机制
- word break