码迷,mamicode.com
首页 > 其他好文 > 详细

STL源码之vector

时间:2014-07-13 23:19:35      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   数据   art   div   

STL源码之vector

 

1. SGI的vector

SGI stl vector继承子一个基类:

template<typename _Tp, typename _Alloc = std::allocator<_Tp> >
    class vector : protected _Vector_base<_Tp, _Alloc>

在基类中定义了基本的一些操作,并且封装了了vector所需要的基本的三个指针:

struct _Vector_impl
      : public _Tp_alloc_type
      {
    pointer _M_start;
    pointer _M_finish;
    pointer _M_end_of_storage;

     …

}

public:
      _Vector_impl _M_impl;

以_M_impl作为数据成员。

现在我们只在一个类中表达出相同含义。

 

2. vector基本含义

 template<typename _Tp, typename _Alloc = std::allocator<_Tp> >
    class vector : protected _Vector_base<_Tp, _Alloc>
    {
     //必须的嵌套类型,必须包含iterator_traits中五个类型
  public: typedef _Tp value_type; typedef typename _Base::pointer pointer; typedef typename _Alloc_traits::const_pointer const_pointer; typedef typename _Alloc_traits::reference reference; typedef typename _Alloc_traits::const_reference const_reference; typedef __gnu_cxx::__normal_iterator<pointer, vector> iterator; typedef __gnu_cxx::__normal_iterator<const_pointer, vector> const_iterator; typedef std::reverse_iterator<const_iterator> const_reverse_iterator; typedef std::reverse_iterator<iterator> reverse_iterator; typedef size_t size_type; typedef ptrdiff_t difference_type; typedef _Alloc allocator_type;
  
  protect:

 

 

 

STL源码之vector,布布扣,bubuko.com

STL源码之vector

标签:style   blog   color   数据   art   div   

原文地址:http://www.cnblogs.com/hancm/p/3840425.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!