3D游戏引擎底层数据结构封装之List

相信很多开发者在游戏开发中都会用到List表,用于存储数据或者对象。估计也有很多人对它的实现并不清楚,只是会用而已。学习知识不能仅限于表面,如果抱着只是会用,时间长了对自己的技能提升没有任何帮助不进则退,相信大家都学过侯捷先生的书,它编写的C++都是底层的实现。作为开发者来说,如果对知识的掌握只限于表面,长久下去把自己就废了。因为现在引擎都封装的非常完善,其实这样做的后果就是引擎的关键技术只是掌握在少数人手中,大部分开发者都是逻辑程序员,一直要依附于人家才能生活,这样很可悲的,作为开发者的我们更应该自己主动的去学习。这样即使引擎有问题,自己也可以轻松解决。本章主要是给读者介绍关于List的封装,List是链表,表是有结点组成的,链表的遍历可以使用迭代器实现,这些就组成了链表的封装。

首先看看迭代器的定义:

[cpp]
/// the list iterator  
   class Iterator  
   {  
   public:  
       /// default constructor  
       Iterator();  
       /// constructor  
       Iterator(Node* node);  
       /// copy constructor  
       Iterator(const Iterator& rhs);  
       /// assignment operator  
       const Iterator& operator=(const Iterator& rhs);  
       /// equality operator  
       bool operator==(const Iterator& rhs) const;  
       /// inequality operator  
       bool operator!=(const Iterator& rhs) const;  
       /// pre-increment operator  
       const Iterator& operator++();  
       /// post-increment operator  
       Iterator operator++(int);  
       /// pre-decrement operator  
       const Iterator& operator--();  
       /// post-increment operator  
       Iterator operator--(int);  
       /// bool operator  
       operator bool() const;  
       /// safe -> operator  
       TYPE* operator->() const;  
       /// safe dereference operator  
       TYPE& operator*() const;  
   private:  
       friend class List;  
  
       /// access to node  
       Node* GetNode() const;  
  
       Node* node;  
   };  

你可能感兴趣的:(3D游戏引擎底层数据结构封装之List)