目录
一:函数模板
二:类模板
空间配置器allocator
一:函数模板
模板代码只能同一实现,不能先声明,再在另一文件实现,模板代码都是放在头文件当中的,在头文件中直接实现
二:类模板
template<typename T=int>
class SeqStack // 模板名称+类型参数列表 = 类名称
{
public:
// 构造和析构函数名不用加<T>,其它出现模板的地方都加上类型参数列表
SeqStack(int size = 10)
: _pstack(new T[size])
, _top(0)
, _size(size)
{}
~SeqStack()
{
delete[]_pstack;
_pstack = nullptr;
}
SeqStack(const SeqStack<T> &stack)
:_top(stack._top)
,_size(stack._size)
{
_pstack = new T[_size];
// 不要用memcopy进行拷贝
for (int i = 0; i < _top; ++i)
{
_pstack[i] = stack._pstack[i];