Back to Top page.

EGTList.h

Go to the documentation of this file.
00001 /****************************************************************************
00002 
00003 $Id: EGTList.h,v 1.2 2002/12/02 08:01:12 motegi Exp $
00004 Copyright (C) 2002 Higuchi Lab. All rights reserved.
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