STL中容器類型的部分共有界面
struct Container {
typedef /***/ value_type; //容器類型統(tǒng)一定別名為value_type ;
Container(void); //構(gòu)造函數(shù);
Container(Container const& b); //重載構(gòu)造函數(shù),用同一類型的初始化;
~Container(void); //析構(gòu)函數(shù);
Container& operator=(Container const& rhs); //對=的重載,使其適用于容器對象之間;
bool empty(void) const; //布爾函數(shù)判斷容器是否為空;
int size(void) const; //返回容器當前實際容量;
int max_size(void) const; //最大容量;
typedef /*實現(xiàn)相關(guān)(T*)*/ Iterator; // 給迭代子一個別名Iterator;
Iterator begin(void); //返回指向第一個元素的迭代子;
Iterator end(void); //返回右邊界;
void swap(Container& b); //與b交換值;
};
template<class CT> //CT: container type //類模板;
void swap(CT& a, CT& b); //交換對象a與對象b的值;
struct Itr {
typedef /* */ value_type;
Itr(void); //構(gòu)造函數(shù);
Itr(Itr const&); //拷貝構(gòu)造函數(shù);
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<typename Itr>
void swap(Itr& a, Itr& b); //交換兩迭代子內(nèi)容;
Container c;
//...
Container::Iterator first = c.begin();
Container::Iterator last = c.end();
for(Container::Iterator i = first; i != last; ++i)
{
//使用*i
}