首页 > 代码库 > C++算法之 写自己的栈stack 动态申请
C++算法之 写自己的栈stack 动态申请
myStack。h
#pragma once//typedef int TYPE;template<typename TYPE>class myStack { TYPE* m_pData;//用new在堆上动态建立 int m_nTop; int m_nCount;public: bool isFull() { return m_nTop+1 >= m_nCount; } bool isEmpty() { if (m_nTop < 0) { return true; } else { return false; } } void push(const TYPE &data) { if (isFull()) { return; } m_pData[++m_nTop] = data; } bool pop(TYPE& t) { if (isEmpty()) { return false; } t = m_pData[m_nTop]; m_nTop--; return true; } myStack(int nCount = 8); ~myStack();};
myStack。cpp
#include "stdafx.h"#include "myStack.h"template<typename TYPE>myStack<TYPE>::myStack(int nCount) //缺省参数值只在头文件当中出现{ m_nCount = nCount; m_pData = http://www.mamicode.com/new TYPE[nCount];>
main.cpp
// Stack2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "myStack.h"#include "myStack.cpp"#include <iostream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){ myStack<int> stack(4); int i = 0; while (i < 4) { stack.push(i); ++i; } int t; while (stack.pop(t)) { cout<<t<<endl; } getchar(); return 0;}
上次是用数组直接申请,这个是用new动态申请,这个方便在构造函数当中指定申请多大的内存。
C++算法之 写自己的栈stack 动态申请
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。