作者anfranion (南‧生命的意義是經歷)
看板EE_DSnP
標題[關於] iterator
時間Wed Nov 11 10:56:57 2009
剛剛去查了一下
iterator本身其實不是define在STL containers裡面 (就是不是inner class)
應該是說
iterator本身是一系列有繼承架構的class with Template
而STL containers裡面是typedef它
這是stl_vector.h裡的片段內容:
template<typename _Tp, typename _Alloc = allocator<_Tp> >
class vector : protected _Vector_base<_Tp, _Alloc>
{
// ...
typedef vector<_Tp, _Alloc> vector_type;
public:
typedef _Tp value_type;
typedef typename _Alloc::pointer pointer;
typedef typename _Alloc::const_pointer const_pointer;
typedef typename _Alloc::reference reference;
typedef typename _Alloc::const_reference const_reference;
typedef __gnu_cxx::__normal_iterator<pointer, vector_type> iterator;
typedef __gnu_cxx::__normal_iterator<const_pointer, vector_type>
const_iterator;
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
typedef std::reverse_iterator<iterator> reverse_iterator;
// ...
STL裡面有滿多奇妙的寫法就是了XDrz
但是不看裡面的寫法
它的組織結構其實很完整,整個模組化也做的不錯
越用越欣賞他的一些寫法~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.4.234