⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linkedlistwithtailiterext.h

📁 用于词法分析的词法分析器
💻 H
字号:
/*  $Id: LinkedListWithTailIterExt.h,v 1.2 1997/02/02 01:31:05 matt Exp $  Extended linked list with tail iterator with insert/remove.    (c) Aug 95 Matt Phillips.  */#ifndef _LLISTTXI_H#define _LLISTTXI_H#include "LinkedListWithTail.h"// NOTE: this class cannot inherit from the LinkedListExtIter class// because then it would not have access to the LinkedListWithTail// class' tail member via the LinkedListWithTailIter class.template <class T, class E>class LinkedListWithTailImpIterExt : public LinkedListWithTailImpIter<T, E>{public:     LinkedListWithTailImpIterExt (LinkedListWithTailImp<T, E> &l) :     prev (0), LinkedListWithTailImpIter<T, E> (l) {}     int hasPrev () const {return prev != 0;}  T &refPrev () const  {    CHECK (prev, "null prev reference");    return prev->ref ();  }  virtual void reset ()  {    LinkedListWithTailImpIter<T, E>::reset ();    prev = 0;  }     virtual void operator ++ (int)  {    prev = i;    LinkedListWithTailImpIter<T, E>::operator ++ (0);  }  // insert t before current item  void insert (T &t);  // remove current item (current item = next afterwards)  void remove ();   protected:  E *prev;};template <class T, class E>void LinkedListWithTailImpIterExt<T, E>::insert (T &t){  ITER_CURRENT (prev);     E *e = new E (t, i);     if (prev)  {    prev->next = e;    prev = e;  } else    setHead (e);     incNItems ();}template <class T, class E>void LinkedListWithTailImpIterExt<T, E>::remove (){  ITER_CURRENT (i);		// check for valid iterator  E *next = i->next;     if (prev)    prev->next = i->next;  else    setHead (i->next);     delete i;  i = next;     decNItems ();  if (i->next == 0) setTail (prev);}#define TypeDLinkedListWithTailIterExt(T) LinkedListWithTailImpIterExt<T, DLinkedItem<T> >#define TypeILinkedListWithTailIterExt(T) LinkedListWithTailImpIterExt<T, ILinkedItem<T, 0> >#define TypeIOLinkedListWithTailIterExt(T) LinkedListWithTailImpIterExt<T, ILinkedItem<T, 1> >#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -