#include <include/EST_TIterator.h>
Public Types | |
typedef EST_TIterator < Container, IPointer, Entry > | Iter |
Public Types inherited from EST_TIterator< Container, IPointer, Entry > | |
typedef EST_TIterator < Container, IPointer, Entry > | Iter |
Name for an iterator like this. | |
Public Member Functions | |
EST_TStructIterator () | |
Create an iterator not associated with any specific container. | |
Iter & | operator= (const Iter &orig) |
Copy an iterator by assignment. | |
EST_TStructIterator (const Container &over) | |
Create an iterator ready to run over the given container. | |
const Entry * | operator-> () const |
Public Member Functions inherited from EST_TIterator< Container, IPointer, Entry > | |
EST_TIterator () | |
Create an iterator not associated with any specific container. | |
EST_TIterator (const Container &over) | |
Create an iterator ready to run over the given container. | |
Iter & | operator= (const Iter &orig) |
Copy an iterator by assignment. | |
Iter & | operator= (const Container &over) |
Assigning a container to an iterator sets it ready to start. | |
void | begin (const Container &over) |
Set the iterator ready to run over this container. | |
void | beginning () |
Reset to the start of the container. | |
bool | has_more_elements () const |
True if there are more elements to look at. | |
bool | at_end () const |
True when there are no more. | |
operator int () const | |
void | next () |
Next moves to the next entry. | |
Iter & | operator++ () |
The increment operator does the same as next. | |
Iter | operator++ (int dummy) |
const Entry & | current () const |
Return the element currently pointed to. | |
const Entry & | operator* () const |
The * operator returns the current element. | |
const Entry & | next_element () |
Return the current element and move the pointer forwards. | |
unsigned int | n () const |
Return the current position. | |
Additional Inherited Members | |
Protected Attributes inherited from EST_TIterator< Container, IPointer, Entry > | |
Container * | cont |
The container we are looking at. | |
unsigned int | pos |
Position in the structure. May or may not be useful. | |
IPointer | pointer |
Template class defining interface to an iterator, i.e an object which returns elements from a structure one at a time.
This is template is usually hidden in the declaration of the container classes with a typedef for Entries providing a more convenient name for the iterator. However the interface is that defined here.
We support two interfaces, a pointer like interface similar to specialised iteration code elsewhere in the speech tools library and to the iterators in the C++ standard template library and an interface similar to that of Enumerations in Java.
<programlisting arch="c++"> MyContainer::Entries them;
for(them.begin(container); them; them++) { MyContainer::Entry &it = *them; // Do Something With it }</programlisting>
<programlisting arch="c++"> MyContainer::Entries them;
them.begin(container); while (them.has_more_entries()) { MyContainer::Entry &it = them.next_entry(); // Do Something With it }</programlisting>
Definition at line 74 of file EST_TIterator.h.