#include
#include
using namespace std;
templateclass Container = vector>
class MyStack
{
private:
Container> Cont_;
public:
void push(const T& t)
{
Cont_.push_back(t);
}
void pop()
{
Cont_.pop_back();
}
T& top()
{
return Cont_.back();
}
bool empty()
{
return Cont_.empty();
}
size_t size()
{
return Cont_.size();
}
};
int main()
{
MyStacks;
s.push(0);
s.top() = 20;
cout << s.top() << endl;
s.pop();
cout << boolalpha << s.empty() << endl;
}
LZ如果你是VC6.0可能无法运行这个程序,我强烈建议你把编译器换成至少VC2005,6.0太老了。她不支持很多c++特性。我们构建新的东西可以以原来的为基础,比如这道题。
#include
using namespace std;
template
class MyPittyStack
{
int i;
public:
Type a[100];
bool push(Type n);
Type &top();
MyPittyStack();
};
template
MyPittyStack::MyPittyStack()
{
i = 0;
}
template
bool MyPittyStack::push(Type n)
{
a[i++] = n;
return true;
}
template
Type & MyPittyStack::top()
{
return a[i];
}
int main()
{
MyPittyStacks;
s.push(123);
s.top() = 456;
cout<return 0;
}
Type *MyPittyStack()
{
return &s[tos-1];//如果是从0开始累积tos,就要-1
}