.h檔案
#pragma once
#include#include#includeusing namespace std;
templateclass vector
//拷貝構造
vector(const vector&v)
_size = v._size;
_capacity = v._capacity;
}//賦值運算子的過載
vector&operator = (vector&v)
//析構函式
~vector()
_size = _capacity = 0;
}size_t size()
int&back()
void print()
cout << endl;
}void pushback(const t&x)
void popback()
void pushfront(const t&x)
_data[0] = x;
++_size;
}void popfront()
--_size;
}//實現隨機位置的插入
void insert(size_t pos, const t&x)
_data[pos] = x;
++_size;
}//實現隨機位置的刪除
void erase(size_t pos)
--_size;
}protected:
void _checkcapacity()
*/delete _data;
}_data = tmp;
_capacity = _newcapacity;}}
protected:
t* _data;
size_t _capacity;
size_t _size;
};void testvector()
//介面卡
template class containter =vector>
class stack
void pop()//尾刪
t&top()//返回棧頂
t&top() const
bool empty()//是否為空
bool empty() const
size_t size() const //堆疊大小
protected:
containter _con;
};void teststack()
cout << endl;
}
list.h檔案:
#pragma once
#include#includeusing namespace std;
//定義乙個結構體
templatestruct listnode
};//帶有頭結點的雙向迴圈鍊錶
templateclass list
list(const list&l)
}list& operator=(listl)
~list()
void clear()
_head->_next = _head;
_head->_prev = _head;
}void pushback(const t&x)
void popback()
void pushfront(const t&x)
void popfront()
void insert(node *pos, const t&x)
void erase(node*pos)
t&back()//返回隊尾
t&front()//返回隊頭
size_t size()//佇列元素的個數
return count;
}void print()
cout << endl;
}protected:
node *_head;
};void testlist()
//介面卡
template < class t,class container = list>
//佇列的操作在尾部插入,在頭部刪除
class queue
void pop()
t& front()
t& back()
bool empty()
size_t size()
protected:
container _con;
};void testqueue()
cout << endl;
}
C 模板實現vector和list
模板分為模板函式和模板類。模板是為了實現泛型程式設計,所謂泛型程式設計,就是指編寫與型別無關的 比如以下的場景 我們想在同乙份 裡實現交換整型,浮點型與字元型。void swap int x,int y void swap double x,double y void swap char x,cha...
C 模板實現Vector和雙向鍊錶
define crt secure no warnings 1 include include using namespace std template class vector vector size t n,const t data vector const vector v pdata new...
C 用模板實現順序表Vector
include以包含所需要的類檔案vector,還有一定要加上using namespace std。用模板寫函式或類都與型別無關,因此,stl中都是用模板實現容器,下面我們來介紹用模板實現順序表。pragma once include includeusing namespace std type...