zoukankan      html  css  js  c++  java
  • 用C++类写一个泛型的栈

    #include <iostream>
    using namespace std;
    
    template <typename T>//通用类模板,模拟了栈并未真正实现 
    class Stack{
    	public:
    		Stack();//构造函数 
    		~Stack();//析构函数 
    		void push(T t);//插入函数 
    		T top();//读取栈顶元素 
    		void pop();//弹出栈顶元素 
    		bool isEmpty();//判断栈是否围殴空 
    	private:
    		T *pt;//指向一段连续的内存空间 
    		int size;//当栈的元素个数 
    		int maxSize;//此内存空间能够存储的最大元素个数 
    };
    
    template <class T>Stack<T>::Stack(){
    	maxSize = 1000;
    	size = 0;
    	pt = new T[maxSize];
    }
    template <class T>Stack<T>::~Stack() {
    	delete [] pt;
    }
    template <class T>void Stack<T>::push(T t) {
    	size++;
    	pt[size - 1] = t;
    }
    template <class T>T Stack<T>::top(){
    	return pt[size - 1];
    }
    
    template <class T>bool Stack<T>::isEmpty(){
    	return size == 0;
    }
    
    template <class T>void Stack<T>::pop() {
    	size--;
    }
    
    int main() {
    	Stack<int> a;//声明了一个类型为int的Stack 
    	a.push(1);
    	a.push(2);
    	a.push(3);
    
    	while(!a.isEmpty()) {
    		printf("%d
    ", a.top());
    		a.pop();
    	}
    	//析构函数会被自动调用 
    	return 0;
    }
    
    追求吾之所爱
  • 相关阅读:
    4-10
    4-9
    第三章例3-4
    第三章例3-3
    第三章例3-2
    第三章例3-1
    第二章例2-11
    第二章例2-10
    第二章例2-9
    第二章例2-8
  • 原文地址:https://www.cnblogs.com/rstz/p/14390992.html
Copyright © 2011-2022 走看看