国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++實現(xiàn)順序表的方法

2020-01-26 14:28:15
字體:
供稿:網(wǎng)友

廢話不多說了,直接給大家上關(guān)鍵代碼了。

#pragma once#include <assert.h>template<class T>class SeqList{public:SeqList():_a(NULL),_size(1),_capacity(1){}SeqList(T* a, size_t size):_a(new T[size]),_size(size),_capacity(size){for (size_t i = 0; i < _size; ++i){_a[i] = a[i];}}//拷貝構(gòu)造函數(shù)常規(guī)寫法/*SeqList(const SeqList<T>& s):_a(new T[s._size]),_size(s._size),_capacity(s._capacity){for (size_t i = 0; i < _size; ++i)_a[i] = s._a[i];}*///拷貝構(gòu)造函數(shù)現(xiàn)代寫法SeqList(const SeqList<T>& s):_a(NULL){SeqList<T> tmp(s._a, s._size);swap(_a, tmp._a);_size = s._size;_capacity = s._capacity;}~SeqList(){if (_a)delete[] _a;}//賦值運算符重載常規(guī)寫法SeqList<T>& operator=(const SeqList<T>& s){if (this != &s){T* tmp = new T[s._size];for (size_t i = 0; i < s._size; ++i){tmp[i] = s._a[i];}delete[] _a;_a = tmp;_size = s._size;_capacity = s._capacity;}return *this;}//賦值運算符重載現(xiàn)代寫法/*SeqList<T>& operator=(SeqList<T> s){if (this != &s){swap(_a, s._a);_size = s._size;_capacity = s._capacity;}return *this;}*/public:void Print(){for (size_t i = 0; i < _size; ++i){cout<<_a[i]<<" ";}cout<<endl;}void PushBack(const T& x){_CheckCapacity();_a[_size++] = x;}void PopBack(){assert(_size > 0);--_size;}void Insert(int pos, const T& x){assert(pos >= 0 && pos <= _size);_CheckCapacity();int iIndex = _size;while (iIndex > pos) //int和size_t比較為什么不行?{_a[iIndex] = _a[iIndex-1]; --iIndex;}_a[iIndex] = x;++_size;}void Erase(size_t pos){assert(_size > 0 && pos < _size);size_t index = pos;while (index < _size-1){_a[index] = _a[index+1];++index;}--_size;}int Find(const T& x){for (size_t i = 0; i < _size; ++i){if (_a[i] == x){return i;}}return -1;}T& operator[](size_t index){assert(index >= 0 && index < _size);return _a[index];}void Reserve(size_t size) //保留空間,增容到size{_capacity = size;_a = (T*)realloc(_a, _capacity * sizeof(T));}void Clear() //不釋放空間{_size = 0;}void Size(){return _size;}protected:void _CheckCapacity(){if (_size+1 > _capacity){_capacity = _capacity*2;_a = (T*)realloc(_a, _capacity * sizeof(T));}}protected:T* _a;size_t _size;size_t _capacity;};

以上所述是小編給大家介紹的順序表的C++實現(xiàn)方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 淮南市| 安宁市| 定襄县| 囊谦县| 新沂市| 招远市| 温州市| 普格县| 崇仁县| 兴海县| 石台县| 余姚市| 南安市| 兴国县| 射阳县| 遵义市| 南阳市| 长泰县| 漯河市| 和平县| 汉川市| 托克托县| 新巴尔虎右旗| 襄汾县| 沙田区| 鲁山县| 长治市| 资中县| 青州市| 东乡族自治县| 桃园县| 界首市| 揭阳市| 盐边县| 昌宁县| 信丰县| 九龙坡区| 镇平县| 西平县| 太谷县| 嘉义县|