3.1.2 函数模版与类模版
来源:互联网 发布:网络色情小说合集下载 编辑:程序博客网 时间:2024/05/01 12:48
一、函数模版
比较两个数的大小。
代码:
#include <iostream>using namespace std;template <typename T>inline int myCompare(const T &a, const T &b) { if(a > b) return 1; else if(a < b) return -1; else return 0;}int main() { cout << myCompare(1, 0) << endl; cout << myCompare(1.0, 2.0) << endl; cout << myCompare(1.0f, 1.0f) << endl; return 0;}
二、类模版
用c++中的类模版来实现标准函数库中的队列
代码:
#include <iostream>#include <vector>#include <iterator>using namespace std;template <typename T> queue;template <typename T>class queueItem {private: friend class queue<T>; queueItem<T> (const T &i) : item(i), next(0) {} T item; queueItem *next;};template <typename T>class queue{public: queue() : head(0), tail(0), n(0) {}; queue& operator=(const queue &q); queue(const queue &q); ~queue(); void push(const T &i); void pop(); T front(); T back(); bool empty() { if(n > 0) return false; else return true; } size_t size() { return n; } void claer();private: size_t n; queueItem<T> *head; queueItem<T> *tail; void copy_queue(const queue &q);}template <typename T>void queue<T>::push(const T &i) { queueItem<T> *temp = new queueItem<T>(i); if(n == 0) { head = tail = temp; } else { tail -> next = temp; tail = temp; } n++;}template <typename T>void queue<T>::pop() { if(n > 0) { queueItem<T> *temp = head; head = head -> next; delete temp; n--; }}template <typename T>T queue<T>::front() { if(n > 0) return head->item; return NULL;}template <typename T>T queue<T>::back() { if(n > 0) return tail->item; return NULL;}template <typename T>void queue<T>::claer() { while(n > 0) { pop(); }}template <typename T>void queue<T>::~queue() { claer();}template <typename T>queue<T>::queue(const queue &q) : head(0), tail(0), n(0) { copy_queue(q);}template <typename T>queue<T> queue<T>::operator=(const queue &q) { if(this != &q) { n = 0; claer(); copy_queue(q); } return *this;}template <typename T>void queue<T>::copy_queue(const queue &q) { queueItem<T> *temp = q.head; while(temp) { push(temp->item); temp = temp->next; }}
0 0
- 3.1.2 函数模版与类模版
- 函数模版与类模版
- 函数模版与类模版template
- 函数模版与模版函数
- 模版——函数模版、类模版
- 模版函数与类模板
- 类模版中函数模版
- 函数模版和类模版
- 函数模版和类模版
- 函数模版与类模版简单实例--学习笔记
- sstream与模版函数
- 函数模版与模版的特化
- 函数模版、类模版、类模版和宏
- 一个函数模版和类模版实例
- C++ 基础之 "模版函数","类模版"
- C++函数模版和类模版基础
- C++之函数模版和类模版
- 类与类模版
- 《剑指Offer》学习笔记--面试题32:从1到n整数中1出现的次数
- 为类目(类别)添加属性,使用storyboard设置边框颜色(转载)
- Qt处理照片实现白色背景转透明
- 别让70后非独夫妇留下终生遗憾
- Maven: missing net.sf.json-lib
- 3.1.2 函数模版与类模版
- 进程注入的研究与实现
- Linq中使用Left Join
- Servlet执行流程和生命周期
- Tomcat 利用server.xml进行项目映射的部署
- com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 2 of 2-byte
- 设置Tomcat的UTF-8编码
- ImageButton单击切换图片效果
- getline()函数详解