stl vector源码剖析
前言 项目组要实现一个算法库,其中涉及到了类似vector的一维数组的实现。特此,对stl中得vector做个学习和了解。有任何问题,欢迎不吝指正。谢谢。 一、如何实现vector 如果给你一道面试题,如何用数据结构实现STL中vector的功能?聪明的你会怎么做呢?或许你会如下所述: 或许,如果不考虑分配效率,只需要两个成员就可以实现了 template <class _Ty> class Vector { public: Vector(int nLen=0):m_nLen(nLen),m_Data(NULL) { if(nLen > 0) { m_Data = new _Ty[nLen]; } } protected: _Ty * m_Data; int m_nLen; }; 或许,如下一个简单的思路实现: #include <iostream> using std::ostream; using std::istream; class Array { friend ostream &operator < <( ostream &, const Array & ); friend istream &operator> > ( istream &, Array & ); public: Array( int = 10 ); Array( const Array & );