1. 程式人生 > >stl源碼為什麽要大量使用typedef?

stl源碼為什麽要大量使用typedef?

lan pre 部分 all 為什麽 poi reference vector 一個

SGI源碼download,《stl源碼剖析》裏展示了vector的部分源碼:

 1 template <class T, class Alloc = alloc>
 2 class vector {
 3 public:
 4   typedef T value_type;
 5   typedef value_type* pointer;
 6   typedef const value_type* const_pointer;
 7   typedef value_type* iterator;
 8   typedef const value_type* const_iterator;
9 typedef value_type& reference; 10 typedef const value_type& const_reference; 11 typedef size_t size_type; 12 typedef ptrdiff_t difference_type; 13

stl裏的string menber types 裏含有的value_type等也是類型別名,叠代器也是。如果是用戶自定義一個string, T,T*的寫法明顯比value_type、pointer更方便。

stl源碼為什麽要大量使用typedef?