用模板寫函式或類都與型別無關,因此,stl中都是用模板實現容器,下面我們來介紹用模板實現順序表。
關於模板的知識,在之前的部落格中有提到:
#include
using
namespace
std;
#include
//模板順序表
template
class vector
vector(const t* arr, size_t size)//非型別引數模板類建構函式
:_start(new t[size])
, _finish(_start)
, _endofstorage(_start + size)
}vector(const vector&v)//拷貝建構函式
:_start(new t[v._endofstorage - v._start])
}vector & operator = (const vector &v)//賦值運算子的過載
return *this;
}void swap(vector&v)
~vector()
}iterator end()
iterator begin()
constiterator begin()
constiterator end()const
size_t size()const
//大小
size_t capacity()const
//容量
t& operator(size_t index)
const t& operator(size_t index)//下標
t& back()
const t& back()//最後乙個元素
void checkcapacity()//檢查容量
}t& front()//第乙個元素
void pushback(const t& x)//後插
void popback()//後刪
iterator insert(iterator pos, const t& x)//任意位置插入
*pos = x;
_finish++;
return pos;
}iterator erase(iterator pos)//任意位置刪除
--finish;
return pos;}}
private:
t * _start;
t * _finish;
t * _endofstorage;
};
模板順序鍊錶
對於模板這個東西,我感覺好像概念清楚,但一直沒機會動手寫一寫。今天終於動手了,寫了才知道自己還是有很多相關的東西不知道的。今天寫了乙個模板順序鍊錶,還花了不少時間,以後有機會將會寫更多的模板資料結構。下面的資料結構支援記憶體自動增長。有查詢,插入,刪除,賦值等簡單基本操作 ifndef afx xt...
順序錶類模板
例6.3 順序錶類模板。include include using namespace std template class seqlist 初始化為空表 int length const 計算表長度 int find t x const 尋找x在表中位置 下標 bool isin t x 判斷x是...
順序錶類模板
include include using namespace std template class seqlist 初始化為空表 int length const 計算表長度 int find t x const 尋找x在表中位置 下標 bool isin t x 判斷x是否在表中 bool in...