<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>template<class T> class EST_TList</TITLE> <META NAME="GENERATOR" CONTENT="DOC++ 3.4.6"> </HEAD> <body bgcolor="#ffffff" link="#0000ff" vlink="#dd0000" text="#000088" alink="9000ff"> <A HREF = "http://www.cstr.ed.ac.uk/"> <IMG align=left BORDER=0 SRC = "cstr.gif"></A> <A HREF="http://www.cstr.ed.ac.uk/projects/speech_tools.html"> <IMG BORDER=0 ALIGN=right SRC="est.jpg" width=150 height=93></A> <br> <br clear=left> <p align=right> In file ../include/EST_TList.h:<TABLE BORDER=0><TR> <TD VALIGN=TOP><H2>template<class T> class <A HREF="#DOC.DOCU">EST_TList</A></H2></TD></H2></TD></TR></TABLE> <HR> <H2>Inheritance:</H2> <APPLET CODE="ClassGraph.class" WIDTH=600 HEIGHT=65> <param name=classes value="MEST_UList,M,CEST_TList,MEST_TList.html"> <param name=before value="M,M"> <param name=after value="Md_,M"> <param name=indent value="0,1"> <param name=arrowdir value="down"> </APPLET> <HR> <DL> <P><TABLE> <DT><H3>Public Methods</H3><DD><TR> <TD VALIGN=TOP><A HREF="#DOC.4.1"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A> </TD><TD><B>Constructor functions </B> <BR> <I></I> <P><TABLE> <TR> <TD VALIGN=TOP><A HREF="#DOC.4.1.1"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A> </TD><TD><B>EST_TList</B> ()<BR> <I>default constructor</I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.4.1.2"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A> </TD><TD><B>EST_TList</B> (const <!1><A HREF="EST_TList.html#DOC.4.1.2">EST_TList</A><T> &l)<BR> <I>copy constructor</I> </TD></TR></TABLE></P> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.4.2"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A> </TD><TD><B>Access functions for reading and writing items.</B> <BR> <I></I> <P><TABLE> <TR> <TD VALIGN=TOP><A HREF="#DOC.4.2.1"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>T& </TD><TD><B>item</B> (const EST_Litem* <!1><A HREF="XML_Parser.html#DOC.190.3.9">p</A>)<BR> <I>return the value associated with the EST_Litem pointer.</I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.4.2.2"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>const T& </TD><TD><B>item</B> (const EST_Litem* <!1><A HREF="XML_Parser.html#DOC.190.3.9">p</A>) const <BR> <I>return a const value associated with the EST_Litem pointer</I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.4.2.3"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>T& </TD><TD><B>nth</B> (int <!1><A HREF="EST_TVector.html#DOC.15.1.20.3">n</A>)<BR> <I>return the Nth value</I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.4.2.4"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>const T& </TD><TD><B>nth</B> (int <!1><A HREF="EST_TVector.html#DOC.15.1.20.3">n</A>) const <BR> <I>return a const Nth value</I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.4.2.5"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>const T& </TD><TD><B>first</B> () const <BR> <I>return const reference to first item in list</I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.4.2.6"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>const T& </TD><TD><B>last</B> () const <BR> <I>return const reference to last item in list</I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.4.2.7"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>T& </TD><TD><B>first</B> ()<BR> <I>return reference to first item in list </I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.4.2.8"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>T& </TD><TD><B>last</B> ()<BR> <I>return reference to last item in list</I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.4.2.9"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>const T& </TD><TD><B>operator () </B> (const EST_Litem* ptr) const <BR> <I>return const reference to item in list pointed to by <TT>ptr</TT></I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.4.2.10"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>T& </TD><TD><B>operator () </B> (const EST_Litem* ptr)<BR> <I>return const reference to item in list pointed to by <TT>ptr</TT></I> </TD></TR></TABLE></P> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.4.3"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A> </TD><TD><B>Removing items in a list. </B> <BR> <I></I> <P><TABLE> <TR> <TD VALIGN=TOP><A HREF="#DOC.4.3.1"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>EST_Litem* </TD><TD><B>remove</B> (EST_Litem* ptr)<BR> <I>remove item pointed to by <TT>ptr</TT>, return pointer to previous item.</I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.4.3.2"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>EST_Litem* </TD><TD><B>remove_nth</B> (int <!1><A HREF="EST_TVector.html#DOC.15.1.20.3">n</A>)<BR> <I>remove nth item, return pointer to previous item</I> </TD></TR></TABLE></P> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.4.4"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A> </TD><TD><B>Adding items to a list. </B> <BR> <I></I> <P><TABLE> <TR> <TD VALIGN=TOP><A HREF="#DOC.4.4.1"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void </TD><TD><B>append</B> (const T &<!1><A HREF="EST_TList.html#DOC.4.2.1">item</A>)<BR> <I>add item onto end of list</I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.4.4.2"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void </TD><TD><B>prepend</B> (const T &<!1><A HREF="EST_TList.html#DOC.4.2.1">item</A>)<BR> <I>add item onto start of list</I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.4.4.3"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>EST_Litem* </TD><TD><B>insert_after</B> (EST_Litem* ptr, const T &<!1><A HREF="EST_TList.html#DOC.4.2.1">item</A>)<BR> <I>add <TT>item</TT> after position given by <TT>ptr</TT>, return pointer to added item.</I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.4.4.4"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>EST_Litem* </TD><TD><B>insert_before</B> (EST_Litem* ptr, const T &<!1><A HREF="EST_TList.html#DOC.4.2.1">item</A>)<BR> <I>add <TT>item</TT> before position given by <TT>ptr</TT>, return pointer to added item.</I> </TD></TR></TABLE></P> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.4.5"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A> </TD><TD><B>Exchange </B> <BR> <I></I> <P><TABLE> <TR> <TD VALIGN=TOP><A HREF="#DOC.4.5.1"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void </TD><TD><B>exchange</B> (EST_Litem* <!1><A HREF="EST_Wave.html#DOC.81.4.1">a</A>, EST_Litem* <!1><A HREF="EST_TBuffer.html#DOC.101.5.12.1">b</A>)<BR> <I>exchange 1</I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.4.5.2"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void </TD><TD><B>exchange</B> (int i, int j)<BR> <I>exchange 2</I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.4.5.3"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>static void </TD><TD><B>exchange_contents</B> (EST_Litem* <!1><A HREF="EST_Wave.html#DOC.81.4.1">a</A>, EST_Litem* <!1><A HREF="EST_TBuffer.html#DOC.101.5.12.1">b</A>)<BR> <I>exchange 3 </I> </TD></TR></TABLE></P> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.4.6"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A> </TD><TD><B>General functions </B> <BR> <I></I> <P><TABLE> <TR> <TD VALIGN=TOP><A HREF="#DOC.4.6.1"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="EST_TList.html">EST_TList</A><T> & </TD><TD><B>operator=</B> (const <!1><A HREF="EST_TList.html">EST_TList</A><T> &<!1><A HREF="EST_Wave.html#DOC.81.4.1">a</A>)<BR> <I>make full copy of list</I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.4.6.2"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="EST_TList.html">EST_TList</A><T> & </TD><TD><B>operator +=</B> (const <!1><A HREF="EST_TList.html">EST_TList</A><T> &<!1><A HREF="EST_Wave.html#DOC.81.4.1">a</A>)<BR> <I>Add list onto end of existing list</I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.4.6.3"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void </TD><TD><B>clear</B> (void)<BR> <I>remove all items in list</I> </TD></TR></TABLE></P> </TD></TR></TABLE></P> </DL> <A NAME="DOC.DOCU"></A> <HR> <H2>Documentation</H2> <BLOCKQUOTE> <P>A Template doubly linked list class. This class contains doubly linked lists of a type denoted by <TT>T</TT>. A pointer of type EST_Litem is used to access items in the list. The class supports a variety of ways of adding, removing and accessing items in the list. For examples of how to operate lists, see list_example. <P>Iteration through the list is performed using a pointer of type EST_Litem. See <!1><A HREF="EST_Features.html#DOC.122.5">Iteration</A> for example code. </BLOCKQUOTE> <DL> <A NAME="Constructor functions "></A> <A NAME="DOC.4.1"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Constructor functions </B></TT> <DL><DT><DD></DL><P><DL> <A NAME="EST_TList"></A> <A NAME="DOC.4.1.1"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> EST_TList()</B></TT> <DD>default constructor <DL><DT><DD></DL><P> <A NAME="EST_TList"></A> <A NAME="DOC.4.1.2"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> EST_TList(const <!1><A HREF="EST_TList.html#DOC.4.1.2">EST_TList</A><T> &l)</B></TT> <DD>copy constructor <DL><DT><DD></DL><P></DL> <A NAME="Access functions for reading and writing items."></A> <A NAME="DOC.4.2"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Access functions for reading and writing items.</B></TT> <DD>See EST_TList_Accessing for examples. <DL><DT><DD></DL><P><DL> <A NAME="item"></A> <A NAME="DOC.4.2.1"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>T& item(const EST_Litem* <!1><A HREF="XML_Parser.html#DOC.190.3.9">p</A>)</B></TT> <DD>return the value associated with the EST_Litem pointer. This has the same functionality as the overloaded () operator. <DL><DT><DD></DL><P> <A NAME="item"></A> <A NAME="DOC.4.2.2"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const T& item(const EST_Litem* <!1><A HREF="XML_Parser.html#DOC.190.3.9">p</A>) const </B></TT> <DD>return a const value associated with the EST_Litem pointer <DL><DT><DD></DL><P> <A NAME="nth"></A> <A NAME="DOC.4.2.3"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>T& nth(int <!1><A HREF="EST_TVector.html#DOC.15.1.20.3">n</A>)</B></TT> <DD>return the Nth value <DL><DT><DD></DL><P> <A NAME="nth"></A> <A NAME="DOC.4.2.4"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const T& nth(int <!1><A HREF="EST_TVector.html#DOC.15.1.20.3">n</A>) const </B></TT> <DD>return a const Nth value <DL><DT><DD></DL><P> <A NAME="first"></A> <A NAME="DOC.4.2.5"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const T& first() const </B></TT> <DD>return const reference to first item in list <DL><DT><DD></DL><P> <A NAME="last"></A> <A NAME="DOC.4.2.6"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const T& last() const </B></TT> <DD>return const reference to last item in list <DL><DT><DD></DL><P> <A NAME="first"></A> <A NAME="DOC.4.2.7"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>T& first()</B></TT> <DD>return reference to first item in list <DL><DT><DT><B>See Also:</B><DD><!1><A HREF="EST_TList.html#DOC.4.2.6">last</A> <BR><DD></DL><P> <A NAME="last"></A> <A NAME="DOC.4.2.8"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>T& last()</B></TT> <DD>return reference to last item in list <DL><DT><DD></DL><P> <A NAME="operator () "></A> <A NAME="DOC.4.2.9"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const T& operator () (const EST_Litem* ptr) const </B></TT> <DD>return const reference to item in list pointed to by <TT>ptr</TT> <DL><DT><DD></DL><P> <A NAME="operator () "></A> <A NAME="DOC.4.2.10"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>T& operator () (const EST_Litem* ptr)</B></TT> <DD>return const reference to item in list pointed to by <TT>ptr</TT> <DL><DT><DD></DL><P></DL> <A NAME="Removing items in a list. "></A> <A NAME="DOC.4.3"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Removing items in a list. </B></TT> <DD>more. <DL><DT><DD></DL><P><DL> <A NAME="remove"></A> <A NAME="DOC.4.3.1"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>EST_Litem* remove(EST_Litem* ptr)</B></TT> <DD>remove item pointed to by <TT>ptr</TT>, return pointer to previous item. See Removing for example code. <DL><DT><DD></DL><P> <A NAME="remove_nth"></A> <A NAME="DOC.4.3.2"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>EST_Litem* remove_nth(int <!1><A HREF="EST_TVector.html#DOC.15.1.20.3">n</A>)</B></TT> <DD>remove nth item, return pointer to previous item <DL><DT><DD></DL><P></DL> <A NAME="Adding items to a list. "></A> <A NAME="DOC.4.4"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Adding items to a list. </B></TT> <DD>In all cases, a complete copy of the item is made and added to the list. See Addition for examples. <DL><DT><DD></DL><P><DL> <A NAME="append"></A> <A NAME="DOC.4.4.1"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void append(const T &<!1><A HREF="EST_TList.html#DOC.4.2.1">item</A>)</B></TT> <DD>add item onto end of list <DL><DT><DD></DL><P> <A NAME="prepend"></A> <A NAME="DOC.4.4.2"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void prepend(const T &<!1><A HREF="EST_TList.html#DOC.4.2.1">item</A>)</B></TT> <DD>add item onto start of list <DL><DT><DD></DL><P> <A NAME="insert_after"></A> <A NAME="DOC.4.4.3"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>EST_Litem* insert_after(EST_Litem* ptr, const T &<!1><A HREF="EST_TList.html#DOC.4.2.1">item</A>)</B></TT> <DD>add <TT>item</TT> after position given by <TT>ptr</TT>, return pointer to added item. <DL><DT><DD></DL><P> <A NAME="insert_before"></A> <A NAME="DOC.4.4.4"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>EST_Litem* insert_before(EST_Litem* ptr, const T &<!1><A HREF="EST_TList.html#DOC.4.2.1">item</A>)</B></TT> <DD>add <TT>item</TT> before position given by <TT>ptr</TT>, return pointer to added item. <DL><DT><DD></DL><P></DL> <A NAME="Exchange "></A> <A NAME="DOC.4.5"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Exchange </B></TT> <DL><DT><DD></DL><P><DL> <A NAME="exchange"></A> <A NAME="DOC.4.5.1"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void exchange(EST_Litem* <!1><A HREF="EST_Wave.html#DOC.81.4.1">a</A>, EST_Litem* <!1><A HREF="EST_TBuffer.html#DOC.101.5.12.1">b</A>)</B></TT> <DD>exchange 1 <DL><DT><DD></DL><P> <A NAME="exchange"></A> <A NAME="DOC.4.5.2"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void exchange(int i, int j)</B></TT> <DD>exchange 2 <DL><DT><DD></DL><P> <A NAME="exchange_contents"></A> <A NAME="DOC.4.5.3"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>static void exchange_contents(EST_Litem* <!1><A HREF="EST_Wave.html#DOC.81.4.1">a</A>, EST_Litem* <!1><A HREF="EST_TBuffer.html#DOC.101.5.12.1">b</A>)</B></TT> <DD>exchange 3 <DL><DT><DD></DL><P></DL> <A NAME="General functions "></A> <A NAME="DOC.4.6"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> General functions </B></TT> <DL><DT><DT><B>Friends:</B><DD> ostream& operator << (ostream &st, <!1><A HREF="EST_TList.html">EST_TList</A><T> const &<!1><A HREF="EST_ServiceTable.html#DOC.136.3.5">list</A>)<BR><DD></DL><P><DL> <A NAME="operator="></A> <A NAME="DOC.4.6.1"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="EST_TList.html">EST_TList</A><T> & operator=(const <!1><A HREF="EST_TList.html">EST_TList</A><T> &<!1><A HREF="EST_Wave.html#DOC.81.4.1">a</A>)</B></TT> <DD>make full copy of list <DL><DT><DD></DL><P> <A NAME="operator +="></A> <A NAME="DOC.4.6.2"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="EST_TList.html">EST_TList</A><T> & operator +=(const <!1><A HREF="EST_TList.html">EST_TList</A><T> &<!1><A HREF="EST_Wave.html#DOC.81.4.1">a</A>)</B></TT> <DD>Add list onto end of existing list <DL><DT><DD></DL><P> <A NAME="clear"></A> <A NAME="DOC.4.6.3"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void clear(void)</B></TT> <DD>remove all items in list <DL><DT><DD></DL><P></DL> </DL> <HR><DL><DT><B>This class has no child classes.</B></DL> <DL><DT><DT><B>Friends:</B><DD> class <!1><A HREF="EST_TIterator.html">EST_TIterator</A>< <!1><A HREF="EST_TList.html">EST_TList</A><T>, IPointer, T ><BR> class EST_TRwIterator< <!1><A HREF="EST_TList.html">EST_TList</A><T>, IPointer, T ><BR><DD></DL><P><P><I><A HREF="index.html">Alphabetic index</A></I> <I><A HREF="HIER.html">HTML hierarchy of classes</A> or <A HREF="HIERjava.html">Java</A></I></P><HR> <A HREF = "http://www.ed.ac.uk/"> <IMG align=right BORDER=0 SRC = "edcrest.gif"></A> <P Align=left><I>This page is part of the <A HREF="http://www.cstr.ed.ac.uk/projects/speech_tools.html"> Edinburgh Speech Tools Library</A> documentation <br> Copyright <A HREF="http://www.ed.ac.uk"> University of Edinburgh</A> 1997 <br> Contact: <A HREF="mailto:speech_toolss@cstr.ed.ac.uk"> speech_tools@cstr.ed.ac.uk </a> </P> <br clear=right>