stl源碼為什麽要大量使用typedef?
阿新 • • 發佈:2017-08-07
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?