00001
00002
00003
00004
00005
00006
00007 #ifndef INCLUDE__TLIST_H__FILE
00008 #define INCLUDE__TLIST_H__FILE
00009
00010 #include <list>
00011
00015 template <class T>
00016 class EGTList {
00017 public:
00018 typedef T ValueType;
00019 typedef ValueType* Pointer;
00020 typedef const ValueType* ConstPointer;
00021 typedef ValueType& Reference;
00022 typedef const ValueType& ConstReference;
00023 typedef unsigned SizeType;
00024 typedef typename std::list<T>::iterator Iterator;
00025 typedef typename std::list<T>::const_iterator ConstIterator;
00026
00027 explicit EGTList() : l_() { }
00028 explicit EGTList(SizeType n, const T& val = T()) : l_(n, val) { }
00029 EGTList(const EGTList<T>& rhs) : l_(rhs.l_) { }
00030 ~EGTList() { }
00031
00032 Iterator Begin() { return l_.begin(); }
00033 ConstIterator Begin() const { return l_.begin(); }
00034 Iterator End() { return l_.end(); }
00035 ConstIterator End() const { return l_.end(); }
00036 SizeType Size() const { return l_.size(); }
00037 SizeType MaxSize() const { return l_.max_size(); }
00038 Reference Front() { return l_.front(); }
00039 ConstReference Front() const { return l_.front(); }
00040 Reference Back() { return l_.back(); }
00041 ConstReference Back() const { return l_.back(); }
00042
00043 Iterator Insert(Iterator tItPos, const T& x) {
00044 return l_.insert(tItPos, x);
00045 }
00046 Iterator Insert(Iterator tItPos) {
00047 return l_.insert(tItPos, T());
00048 }
00049 void Insert(Iterator tItPos, const T* first, const T* last) {
00050 l_.insert(tItPos, first, last);
00051 }
00052 void Insert(Iterator itPos, ConstIterator first, ConstIterator last) {
00053 l_.insert(itPos, first, last);
00054 }
00055 void Insert(Iterator itPos, SizeType n, const T& x) {
00056 l_.insert(itPos, n, x);
00057 }
00058
00059 void PushFront(const T& x) { l_.push_front(x); }
00060 void PushFront() { l_.push_front(); }
00061 void PushBack(const T& x) { l_.push_back(x); }
00062 void PushBack() { l_.push_back(); }
00063 void PopFront() { l_.pop_front(); }
00064 void PopBack() { l_.pop_back(); }
00065 void Clear() { l_.clear(); }
00066
00067 Iterator Erase(Iterator itPos) {
00068 return l_.erase(itPos);
00069 }
00070 Iterator Erase(Iterator first, Iterator last) {
00071 return l_.erase(first, last);
00072 }
00073 void Resize(SizeType tNewSize, const T& x) {
00074 l_.resize(tNewSize, x);
00075 }
00076 void Resize(SizeType tNewSize) {
00077 l_.resize(tNewSize, T());
00078 }
00079
00080 private:
00081 std::list<T> l_;
00082 };
00083
00084 #endif //INCLUDE__TLIST_H__FILE