码迷,mamicode.com
首页 > 编程语言 > 详细

C++模板化堆栈类的代码

时间:2019-01-25 11:30:49      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:push   std   namespace   mes   ret   小伙伴   include   efault   new   

在研发过程中,将写内容过程中经常用到的一些内容段做个备份,如下内容是关于C++模板化堆栈类的内容,应该对小伙伴有较大用途。

#include<iostream>
#include<cstdlib>
#define default_value 10
using namespace std;

template< class T > class Stack
{
public:
{delete [] values;}
bool push( T );
T pop();
bool isEmpty();
bool isFull();
private:
int size;
int index;

};

template< class T > Stack<T>::Stack(int x):
values(new T[size]),
index(-1)

template< class T > bool Stack<T>::isFull()
{
if((index + 1) == size )
return 1;
else
return 0;
}

template< class T > bool Stack<T>::push(T x)
{
bool b = 0;
if(!Stack<T>::isFull())
{
index += 1;
values[index] = x;
b = 1;
}
return b;
}

template< class T > bool Stack<T>::isEmpty()
{
return 1;
else
}

template< class T > T Stack<T>::pop()
{
T val = -1;
if(!Stack<T>::isEmpty())
{
val = values[index];
index -= 1;
}
else
{
cerr << "Stack is Empty : ";
}
return val;

}

int main()
{
Stack <double> stack1;
Stack <int> stack2(5);
int y = 1;
double x = 1.1;
int i, j;
cout << "n pushed values into stack1: ";

{
else
cout << "n Stack1 is full: ";
}

cout << "nn popd values from stack1 : n";
for( j = 1 ; j <= 11 ; j++)
cout << stack1.pop() << endl;



cout << "n pushd values into stack2: ";

{
else
cout << "n Stack2 is full: ";
}

cout << "nn popd values from stack2: n";
for( j = 1 ; j <= 6 ; j++)
cout << stack2.pop() << endl;
cout << endl << endl;
return 0;
}





C++模板化堆栈类的代码

标签:push   std   namespace   mes   ret   小伙伴   include   efault   new   

原文地址:https://www.cnblogs.com/mantiger/p/10317936.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!