#include<iostream>
#include<vector>
#include<iomanip>
#define N 4
using namespace std;
template<typename T>
struct Stack{
Stack(){}
// ~Stack() {clear();}
bool empty(void) const {return vector<T>::empty();}
int size (void) const {return vector<T>::size();}
int top(void) {return vector<T>::back();}
void pop(void) {vector<T>::pop_back();}
void push(int v){vector<T>::push_back(v);}
// void clear(void){vector<T>::clear();}
};
Stack<int>*edge = new Stack<int>[N];
int main()
{
Stack<int> a;
a.push(11);
return 0;
}
这里写的本身就有问题!上面我改子之后是可以编译通过的, 但运行是有问题的!
改了点东西, 不知道是不是你要的那样!
#include<iostream>
#include<vector>
#include<iomanip>
#define N 4
using namespace std;
template<typename T>
struct Stack
{
vector<T> v;
public:
Stack() {}
~Stack()
{
clear();
}
bool empty(void) const
{
return v.empty();
}
int size (void) const
{
return v.size();
}
int top(void)
{
return v.back();
}
void pop(void)
{
v.pop_back();
}
void push(T value)
{
v.push_back(value);
}
void clear(void)
{
v.clear();
}
};
int main(int argv, char*argc[])
{
Stack<int> *edge = new Stack<int>[N];
Stack<int> temp;
temp.push(1);
temp.push(2);
cout << temp.top() << endl;
return 0;
}
[ 本帖最后由 missiyou 于 2010-12-29 10:43 编辑 ]
#include<vector>
#include<iomanip>
#define N 4
using namespace std;
template<typename T>
struct Stack{
Stack(){}
// ~Stack() {clear();}
bool empty(void) const {return vector<T>::empty();}
int size (void) const {return vector<T>::size();}
int top(void) {return vector<T>::back();}
void pop(void) {vector<T>::pop_back();}
void push(int v){vector<T>::push_back(v);}
// void clear(void){vector<T>::clear();}
};
Stack<int>*edge = new Stack<int>[N];
int main()
{
Stack<int> a;
a.push(11);
return 0;
}
这里写的本身就有问题!上面我改子之后是可以编译通过的, 但运行是有问题的!
改了点东西, 不知道是不是你要的那样!
#include<iostream>
#include<vector>
#include<iomanip>
#define N 4
using namespace std;
template<typename T>
struct Stack
{
vector<T> v;
public:
Stack() {}
~Stack()
{
clear();
}
bool empty(void) const
{
return v.empty();
}
int size (void) const
{
return v.size();
}
int top(void)
{
return v.back();
}
void pop(void)
{
v.pop_back();
}
void push(T value)
{
v.push_back(value);
}
void clear(void)
{
v.clear();
}
};
int main(int argv, char*argc[])
{
Stack<int> *edge = new Stack<int>[N];
Stack<int> temp;
temp.push(1);
temp.push(2);
cout << temp.top() << endl;
return 0;
}
[ 本帖最后由 missiyou 于 2010-12-29 10:43 编辑 ]