\doxysection{Qore\+::Abstract\+Bidirectional\+Iterator Class Reference}
\hypertarget{class_qore_1_1_abstract_bidirectional_iterator}{}\label{class_qore_1_1_abstract_bidirectional_iterator}\index{Qore::AbstractBidirectionalIterator@{Qore::AbstractBidirectionalIterator}}


This class defines an abstract interface for bidirectional iterators.  




{\ttfamily \#include $<$QC\+\_\+\+Abstract\+Bidirectional\+Iterator.\+dox.\+h$>$}



Inheritance diagram for Qore\+::Abstract\+Bidirectional\+Iterator\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_qore_1_1_abstract_bidirectional_iterator__inherit__graph}
\end{center}
\end{figure}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{abstract}} \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{bool}} \mbox{\hyperlink{class_qore_1_1_abstract_bidirectional_iterator_a8ca43ac8bffc78178f61e3cca9b6323e}{prev}} ()
\begin{DoxyCompactList}\small\item\em Moves the current position to the previous element; returns \doxysectlink{basic_data_types_False}{False}{2} if there are no more elements. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions inherited from \mbox{\hyperlink{class_qore_1_1_abstract_iterator}{Qore\+::\+Abstract\+Iterator}}}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{abstract}} \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{auto}} \mbox{\hyperlink{class_qore_1_1_abstract_iterator_aa01374b285003faa21b045082063ac12}{get\+Value}} ()
\begin{DoxyCompactList}\small\item\em returns the current value \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{abstract}} \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{bool}} \mbox{\hyperlink{class_qore_1_1_abstract_iterator_ab10d5694cc2fcd3b6689ea7494da79de}{next}} ()
\begin{DoxyCompactList}\small\item\em Moves the current position to the next element; returns \doxysectlink{basic_data_types_False}{False}{2} if there are no more elements. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{abstract}} \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{bool}} \mbox{\hyperlink{class_qore_1_1_abstract_iterator_aee1def5d872b487b8917a166d9b263e8}{valid}} ()
\begin{DoxyCompactList}\small\item\em returns \doxysectlink{basic_data_types_True}{True}{2} if the iterator is currently pointing at a valid element, \doxysectlink{basic_data_types_False}{False}{2} if not \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
This class defines an abstract interface for bidirectional iterators. 

\doxysubsection{Member Function Documentation}
\Hypertarget{class_qore_1_1_abstract_bidirectional_iterator_a8ca43ac8bffc78178f61e3cca9b6323e}\label{class_qore_1_1_abstract_bidirectional_iterator_a8ca43ac8bffc78178f61e3cca9b6323e} 
\index{Qore::AbstractBidirectionalIterator@{Qore::AbstractBidirectionalIterator}!prev@{prev}}
\index{prev@{prev}!Qore::AbstractBidirectionalIterator@{Qore::AbstractBidirectionalIterator}}
\doxysubsubsection{\texorpdfstring{prev()}{prev()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{abstract}} \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{bool}} Qore\+::\+Abstract\+Bidirectional\+Iterator\+::prev (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Moves the current position to the previous element; returns \doxysectlink{basic_data_types_False}{False}{2} if there are no more elements. 

This method will return \doxysectlink{basic_data_types_True}{True}{2} again after it returns \doxysectlink{basic_data_types_False}{False}{2} once if the object being iterated is not empty, otherwise it will always return \doxysectlink{basic_data_types_False}{False}{2}. The iterator object should not be used after this method returns \doxysectlink{basic_data_types_False}{False}{2}

\begin{DoxyReturn}{Returns}
\doxysectlink{basic_data_types_False}{False}{2} if there are no more elements (in which case the iterator object is invalid and should not be used); \doxysectlink{basic_data_types_True}{True}{2} if successful (meaning that the iterator object is valid)
\end{DoxyReturn}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keywordflow}{while}\ (i.prev())\ \{}
\DoxyCodeLine{\ \ \ \ printf(\textcolor{stringliteral}{"{}\ +\ \%y\(\backslash\)n"{}},\ i.getValue());}
\DoxyCodeLine{\}}

\end{DoxyCode}

\end{DoxyParagraph}
\begin{DoxyNote}{Note}
this method is basically the opposite to \doxylink{class_qore_1_1_abstract_iterator_ab10d5694cc2fcd3b6689ea7494da79de}{Abstract\+Iterator\+::next()} 
\end{DoxyNote}
