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

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

C++實現順序表的方法

2020-05-23 14:00:54
字體:
來源:轉載
供稿:網友

廢話不多說了,直接給大家上關鍵代碼了。

#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];}}//拷貝構造函數常規寫法/*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];}*///拷貝構造函數現代寫法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;}//賦值運算符重載常規寫法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;}//賦值運算符重載現代寫法/*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++實現方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 林芝县| 集贤县| 沭阳县| 昭平县| 聂荣县| 信丰县| 集贤县| 西昌市| 资溪县| 清涧县| 荣成市| 和硕县| 秭归县| 紫金县| 万山特区| 游戏| 托里县| 民勤县| 怀来县| 赤峰市| 新平| 巴彦县| 乐至县| 雷州市| 呈贡县| 洪洞县| 龙游县| 临夏县| 潢川县| 和田县| 霍州市| 彰化县| 东乌珠穆沁旗| 绥江县| 马公市| 锡林浩特市| 通化县| 同江市| 大英县| 峨山| 瑞安市|