STL中容器类型的共有性质

来源:百度文库 编辑:神马文学网 时间:2024/04/28 05:49:00

STL中容器类型的部分共有界面

struct Container {                                         
typedef /***/ value_type;                                     //容器类型统一定别名为value_type ;
Container(void);                                                   //构造函数;
Container(Container const& b);                          //重载构造函数,用同一类型的初始化;
~Container(void);                                                 //析构函数;
Container& operator=(Container const& rhs);   //对=的重载,使其适用于容器对象之间;
bool empty(void) const;                                        //布尔函数判断容器是否为空;           
int size(void) const;                                               //返回容器当前实际容量;
int max_size(void) const;                                      //最大容量;
typedef /*实现相关(T*)*/ Iterator;                 // 给迭代子一个别名Iterator;
Iterator begin(void);                                               //返回指向第一个元素的迭代子;
Iterator end(void);                                                  //返回右边界;
void swap(Container& b);                                     //与b交换值;  
};
template //CT: container type             //类模板;  
void swap(CT& a, CT& b);                                   //交换对象a与对象b的值;


STL对迭代子类的要求(部分)
struct Itr {
typedef /* */ value_type;
Itr(void); //构造函数;
Itr(Itr const&); //拷贝构造函数;
Itr& operator=(Itr const& rhs); //对赋值运算符=重载;
bool operator==(Itr const& rhs) const;//对==重载;
bool operator!=(Itr const& rhs) const;//对!=重载;
value_type& operator*(void); //对*重载;
value_type* operator->(void); //对->重载;
Itr& operator++(void); //对++前缀重载;
Itr operator++(int); //对++后缀重载;
};
template
void swap(Itr& a, Itr& b); //交换两迭代子内容; 

STL容器遍历的统一方法:
Container c;
//...
Container::Iterator first = c.begin();
Container::Iterator last = c.end();
for(Container::Iterator i = first; i != last; ++i)
{
//使用*i
}