用模板實現順序表Vector

2021-08-09 17:32:44 字數 2022 閱讀 5899

#pragma once

#include using namespace std;

#include template class vector

vector(const t* array, size_t size)

: _start(new t[size])

, _finish(_start)

, _endofstorage(_finish)

vector(const vector& v)//拷貝建構函式

_endofstorage = _finish;

} vector& operator=(const vector& s)//賦值運算子過載

}delete _start;

return *tmp;

} ~vector()//析構函式 }

///modify//

void pushback(const t& data)//尾插

void popback()//尾刪

void insert(size_t pos, const t& data)//指定位置插入

_start[pos] = data;

++_finish;

} void erase(size_t pos)//刪除指定位置

--_finish;

} //capacity

size_t size()const//求有效元素個數

size_t capacity()const//求總容量大小

bool empty()const//檢查是否為空

void resize(size_t newsize, const t& data = t())//重置大小

else if (newsize > oldsize&&newsize < capacity())

_finish = _start + newsize;

} else

for (size_t i = oldsize; i < newsize; i++)

delete _start;

_start = tmp;

_finish = _start+newsize;

_endofstorage = _finish + newsize;

} }//acess///

t& operator(size_t index)//過載下標運算子

const t& operator(size_t index)const

t& front()//返回第乙個元素

const t& front()const

t& back()//返回最後乙個元素

const t& back()const

void clear()//清空

void diplay()

cout << "end" << endl;

}private:

void _checkcapacity()//檢查是否有空間

else//非內建型別}}

if (_start)

delete _start;

_start = tmp;

_finish = _start + size;

_endofstorage = _finish + capacity * 2 + 3;

} }templatefriend ostream& operator<<(ostream& _cout, const vector& v)

bool ispod(const char* typename)

; for (size_t i = 0; i < 4; ++i)

return false;

}private:

t* _start;

t* _finish;

t* _endofstorage;

};

#include "vector.hpp"

void test1()

int main()

C 用模板實現順序表Vector

include以包含所需要的類檔案vector,還有一定要加上using namespace std。用模板寫函式或類都與型別無關,因此,stl中都是用模板實現容器,下面我們來介紹用模板實現順序表。pragma once include includeusing namespace std type...

模板實現順序表

模板就是實現與型別無關的 增加了 的復用性。模板分為模板函式和模板類 模板函式的格式typedef 返回型別 函式名 引數列表 class也可以用typename,意義相同。當需要資料大於所給定的資料時這時我們會考慮增容。void vector checkcapacity void test 我們再...

模板實現順序表

一 seqlist.h pragma once include include include using namespace std template class seqlist seqlist void pushback const t x 最好傳引用,不傳引用,如果t為string,傳參時拷貝...