c++模板类解读STL源码最小模型

STL用法很通俗易懂,但是,想深入了解STL源码的实现,以为以后设计自己的模板类。
首先应了解和掌握模板类的设计方法,然后推荐《C++模板元编程》、《STL源码剖析》两本书,博大精深的STL!这些书电子版在jask中都能下到。

1. 类模板和STL
STL是C++的标准模板库,其源码编程完全依赖模板实现。
类模板是能根据不同参数建立不同类型成员的类。

2. 类模板的定义
template<模板类参数>
class 类名
{
 成员名;
};
根据需要参数可以多个。

3. STL是模板类应用的一个最好的开源实例
在掌握STL的基本用法的基础上去理解模板类的设计会更加深刻,在掌握模板类设计的基础上,可以设计出自己需要的类似STL的容器。
比如给出的栈模板例子。

4. 一个简单的栈模板实例
// template of stack
template
class Stack
{
 public:
  Stack(int size=10);
  ~Stack();
  bool IsFull();
  bool IsEmpty();
  bool Push(const T&);
  T Pop();
 private:
  int m_size;
  int m_top;
  T *m_space;
};

template
Stack::Stack(int size)
{
 this->m_size = size;
 m_space = new T(size);
 m_top = size;
}

template
Stack::~Stack()
{
 delete []m_space;
}

template
bool Stack::IsFull()
{
 return m_top == 0;
}

template
bool Stack::IsEmpty()
{
 return m_top == m_size;
}

template
bool Stack::Push(const T&element)
{
 if(!IsFull())
 {
  m_space[--m_top] = element;
  return true;
 }
 return false;
}

template
T Stack::Pop()
{
 return m_space[m_top++];
}

5. 总结
模板和stl相辅相成,学习的时候,注意实例开发和模板类构件的积累。
模板类开发是C++构件开发的重要技术手段。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值