模板实现顺序表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模板实现顺序表相关的知识,希望对你有一定的参考价值。
#include<iostream> using namespace std; template<typename T> class Seqlist { public: Seqlist() :_data(NULL) , _size(0) , _capacity(0) { CheckCapacity(); } ~Seqlist() { if (_data != NULL) { delete[] _data; } } Seqlist(const Seqlist<T>& s) { _data = new T[s._size * sizeof(T)]; int i = 0; for (i = 0; i < s._size; i++) { _data[i] = s._data[i]; } _size = s._size; _capacity = s._size; } void PushBack(const T& d); void PopBack(); void PushFront(const T& d); void PopFont(); void Print() { int i = 0; for (i = 0; i < _size; i++) { cout << _data[i] << ""; } cout << endl; } public: void CheckCapacity() { if (_size == _capacity) { T* tmp = new T[2 * _capacity + 3]; /*memcpy(tmp,_data, _size*sizeof(T));*/ int i= 0; for (i = 0; i < _size; i++) { tmp[i] = _data[i]; } delete[] _data; _data = tmp; _capacity = 2 * _capacity + 3; } } private: T* _data; int _size; int _capacity; }; template<typename T> void Seqlist<T>::PushBack(const T& d) { CheckCapacity(); _data[_size] = d; _size++; } template<typename T> void Seqlist<T>::PopBack() { } template<typename T> void Seqlist<T>::PushFront(const T& d) { } template<typename T> void Seqlist<T>::PopFont() { } int main() { Seqlist<int> s1; s1.PushBack(1111111); s1.PushBack(2222222); s1.PushBack(3333333); s1.PushBack(4444444); s1.Print(); //cout << sizeof(string) << endl; getchar(); return 0; }
本文出自 “顺势而为” 博客,请务必保留此出处http://lk123456.blog.51cto.com/10831443/1754104
以上是关于模板实现顺序表的主要内容,如果未能解决你的问题,请参考以下文章