\hypertarget{a00317}{
\section{mln::p\_\-queue$<$ P $>$ Class Template Reference}
\label{da/de0/a00317}\index{mln::p\_\-queue@{mln::p\_\-queue}}
}


Queue of sites (based on std::deque).  




{\ttfamily \#include $<$p\_\-queue.hh$>$}



Inherits site\_\-set\_\-base\_\-$<$ P, p\_\-queue$<$ P $>$ $>$.

\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
typedef \hyperlink{a00308}{p\_\-indexed\_\-bkd\_\-piter}$<$ \hyperlink{a00317}{self\_\-} $>$ \hyperlink{a00317_a4ac026ed99ec1c3c1e2dc88620c74471}{bkd\_\-piter}
\begin{DoxyCompactList}\small\item\em Backward \hyperlink{a00345}{Site\_\-Iterator} associated type. \item\end{DoxyCompactList}\item 
typedef P \hyperlink{a00317_ab21f599ba3cbdd25d7968f2f69e95319}{element}
\begin{DoxyCompactList}\small\item\em Element associated type. \item\end{DoxyCompactList}\item 
typedef \hyperlink{a00309}{p\_\-indexed\_\-fwd\_\-piter}$<$ \hyperlink{a00317}{self\_\-} $>$ \hyperlink{a00317_adddd80d0c83952b39af8b97ee13ac408}{fwd\_\-piter}
\begin{DoxyCompactList}\small\item\em Forward \hyperlink{a00345}{Site\_\-Iterator} associated type. \item\end{DoxyCompactList}\item 
typedef P \hyperlink{a00317_ac475fa06e0cfaea8ea1f5d48c91529de}{i\_\-element}
\begin{DoxyCompactList}\small\item\em Insertion element associated type. \item\end{DoxyCompactList}\item 
typedef \hyperlink{a00309}{fwd\_\-piter} \hyperlink{a00317_a131a04e19216f3baeff8205dc8352f83}{piter}
\begin{DoxyCompactList}\small\item\em \hyperlink{a00345}{Site\_\-Iterator} associated type. \item\end{DoxyCompactList}\item 
typedef \hyperlink{a00310}{p\_\-indexed\_\-psite}$<$ \hyperlink{a00317}{self\_\-} $>$ \hyperlink{a00317_a1805d0feea200d50ec07b599d2fd83ac}{psite}
\begin{DoxyCompactList}\small\item\em Psite associated type. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a00317_a6aa45125123e2e44697a704d64734db8}{clear} ()
\begin{DoxyCompactList}\small\item\em Clear the queue. \item\end{DoxyCompactList}\item 
const P \& \hyperlink{a00317_a6dd6bfa21e276fe4457801d585ddc4e0}{front} () const 
\begin{DoxyCompactList}\small\item\em Give the front site {\ttfamily p} of the queue; {\ttfamily p} is the least recently inserted site. \item\end{DoxyCompactList}\item 
bool \hyperlink{a00317_a4d20795bd81cf2b0e69292174e7e960a}{has} (const \hyperlink{a00310}{psite} \&p) const 
\begin{DoxyCompactList}\small\item\em Test if {\ttfamily p} belongs to this site set. \item\end{DoxyCompactList}\item 
bool \hyperlink{a00317_a45761ca0dad8df668f757daee16deed2}{has} (const util::index \&i) const 
\begin{DoxyCompactList}\small\item\em Test if index {\ttfamily i} belongs to this site set. \item\end{DoxyCompactList}\item 
void \hyperlink{a00317_af9836528197f731d64e8f0b05ea29979}{insert} (const P \&p)
\begin{DoxyCompactList}\small\item\em Insert a site {\ttfamily p} (equivalent as 'push'). \item\end{DoxyCompactList}\item 
bool \hyperlink{a00317_adbeea39933d3580039e27a6904af024c}{is\_\-valid} () const 
\begin{DoxyCompactList}\small\item\em This set is always valid so it returns true. \item\end{DoxyCompactList}\item 
std::size\_\-t \hyperlink{a00317_a1c679405f2f3a295a7a83a3b58d54998}{memory\_\-size} () const 
\begin{DoxyCompactList}\small\item\em Return the size of this site set in memory. \item\end{DoxyCompactList}\item 
unsigned \hyperlink{a00317_a35b6590c0eabb27091b5afea454d507f}{nsites} () const 
\begin{DoxyCompactList}\small\item\em Give the number of sites. \item\end{DoxyCompactList}\item 
const P \& \hyperlink{a00317_abf4516740f16338c0247043c8b5ec3d3}{operator\mbox{[}$\,$\mbox{]}} (unsigned i) const 
\begin{DoxyCompactList}\small\item\em Return the {\ttfamily i-\/th} site. \item\end{DoxyCompactList}\item 
\hyperlink{a00317_aff4559568acff9df4892321120074e91}{p\_\-queue} ()
\begin{DoxyCompactList}\small\item\em Constructor without argument. \item\end{DoxyCompactList}\item 
void \hyperlink{a00317_ab65b016942417868a5456295c17db16e}{pop} ()
\begin{DoxyCompactList}\small\item\em Pop (remove) the front site {\ttfamily p} from the queue; {\ttfamily p} is the least recently inserted site. \item\end{DoxyCompactList}\item 
P \hyperlink{a00317_a3529ef701998581b9f06a07400b7f64d}{pop\_\-front} ()
\begin{DoxyCompactList}\small\item\em Pop (remove) the front site {\ttfamily p} from the queue; {\ttfamily p} is the least recently inserted site and give the front site {\ttfamily p} of the queue; {\ttfamily p} is the least recently inserted site. \item\end{DoxyCompactList}\item 
void \hyperlink{a00317_a71299812b3b50027c23bc029259e66d4}{push} (const P \&p)
\begin{DoxyCompactList}\small\item\em Push a site {\ttfamily p} in the queue. \item\end{DoxyCompactList}\item 
const std::deque$<$ P $>$ \& \hyperlink{a00317_a7f545f8ca34aa7504539be4c2a48a5ed}{std\_\-deque} () const 
\begin{DoxyCompactList}\small\item\em Return the corresponding std::deque of sites. \item\end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename P$>$ class mln::p\_\-queue$<$ P $>$}

Queue of sites (based on std::deque). The parameter {\ttfamily P} shall be a site or pseudo-\/site type. 

Definition at line 74 of file p\_\-queue.hh.



\subsection{Member Typedef Documentation}
\hypertarget{a00317_a4ac026ed99ec1c3c1e2dc88620c74471}{
\index{mln::p\_\-queue@{mln::p\_\-queue}!bkd\_\-piter@{bkd\_\-piter}}
\index{bkd\_\-piter@{bkd\_\-piter}!mln::p_queue@{mln::p\_\-queue}}
\subsubsection[{bkd\_\-piter}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename P$>$ typedef {\bf p\_\-indexed\_\-bkd\_\-piter}$<${\bf self\_\-}$>$ {\bf mln::p\_\-queue}$<$ P $>$::{\bf bkd\_\-piter}}}
\label{da/de0/a00317_a4ac026ed99ec1c3c1e2dc88620c74471}


Backward \hyperlink{a00345}{Site\_\-Iterator} associated type. 



Definition at line 90 of file p\_\-queue.hh.

\hypertarget{a00317_ab21f599ba3cbdd25d7968f2f69e95319}{
\index{mln::p\_\-queue@{mln::p\_\-queue}!element@{element}}
\index{element@{element}!mln::p_queue@{mln::p\_\-queue}}
\subsubsection[{element}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename P$>$ typedef P {\bf mln::p\_\-queue}$<$ P $>$::{\bf element}}}
\label{da/de0/a00317_ab21f599ba3cbdd25d7968f2f69e95319}


Element associated type. 



Definition at line 80 of file p\_\-queue.hh.

\hypertarget{a00317_adddd80d0c83952b39af8b97ee13ac408}{
\index{mln::p\_\-queue@{mln::p\_\-queue}!fwd\_\-piter@{fwd\_\-piter}}
\index{fwd\_\-piter@{fwd\_\-piter}!mln::p_queue@{mln::p\_\-queue}}
\subsubsection[{fwd\_\-piter}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename P$>$ typedef {\bf p\_\-indexed\_\-fwd\_\-piter}$<${\bf self\_\-}$>$ {\bf mln::p\_\-queue}$<$ P $>$::{\bf fwd\_\-piter}}}
\label{da/de0/a00317_adddd80d0c83952b39af8b97ee13ac408}


Forward \hyperlink{a00345}{Site\_\-Iterator} associated type. 



Definition at line 87 of file p\_\-queue.hh.

\hypertarget{a00317_ac475fa06e0cfaea8ea1f5d48c91529de}{
\index{mln::p\_\-queue@{mln::p\_\-queue}!i\_\-element@{i\_\-element}}
\index{i\_\-element@{i\_\-element}!mln::p_queue@{mln::p\_\-queue}}
\subsubsection[{i\_\-element}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename P$>$ typedef P {\bf mln::p\_\-queue}$<$ P $>$::{\bf i\_\-element}}}
\label{da/de0/a00317_ac475fa06e0cfaea8ea1f5d48c91529de}


Insertion element associated type. 



Definition at line 118 of file p\_\-queue.hh.

\hypertarget{a00317_a131a04e19216f3baeff8205dc8352f83}{
\index{mln::p\_\-queue@{mln::p\_\-queue}!piter@{piter}}
\index{piter@{piter}!mln::p_queue@{mln::p\_\-queue}}
\subsubsection[{piter}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename P$>$ typedef {\bf fwd\_\-piter} {\bf mln::p\_\-queue}$<$ P $>$::{\bf piter}}}
\label{da/de0/a00317_a131a04e19216f3baeff8205dc8352f83}


\hyperlink{a00345}{Site\_\-Iterator} associated type. 



Definition at line 93 of file p\_\-queue.hh.

\hypertarget{a00317_a1805d0feea200d50ec07b599d2fd83ac}{
\index{mln::p\_\-queue@{mln::p\_\-queue}!psite@{psite}}
\index{psite@{psite}!mln::p_queue@{mln::p\_\-queue}}
\subsubsection[{psite}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename P$>$ typedef {\bf p\_\-indexed\_\-psite}$<${\bf self\_\-}$>$ {\bf mln::p\_\-queue}$<$ P $>$::{\bf psite}}}
\label{da/de0/a00317_a1805d0feea200d50ec07b599d2fd83ac}


Psite associated type. 



Definition at line 84 of file p\_\-queue.hh.



\subsection{Constructor \& Destructor Documentation}
\hypertarget{a00317_aff4559568acff9df4892321120074e91}{
\index{mln::p\_\-queue@{mln::p\_\-queue}!p\_\-queue@{p\_\-queue}}
\index{p\_\-queue@{p\_\-queue}!mln::p_queue@{mln::p\_\-queue}}
\subsubsection[{p\_\-queue}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename P $>$ {\bf mln::p\_\-queue}$<$ P $>$::{\bf p\_\-queue} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{da/de0/a00317_aff4559568acff9df4892321120074e91}


Constructor without argument. 



Definition at line 163 of file p\_\-queue.hh.



\subsection{Member Function Documentation}
\hypertarget{a00317_a6aa45125123e2e44697a704d64734db8}{
\index{mln::p\_\-queue@{mln::p\_\-queue}!clear@{clear}}
\index{clear@{clear}!mln::p_queue@{mln::p\_\-queue}}
\subsubsection[{clear}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename P $>$ void {\bf mln::p\_\-queue}$<$ P $>$::clear (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{da/de0/a00317_a6aa45125123e2e44697a704d64734db8}


Clear the queue. 



Definition at line 244 of file p\_\-queue.hh.

\hypertarget{a00317_a6dd6bfa21e276fe4457801d585ddc4e0}{
\index{mln::p\_\-queue@{mln::p\_\-queue}!front@{front}}
\index{front@{front}!mln::p_queue@{mln::p\_\-queue}}
\subsubsection[{front}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename P $>$ const P \& {\bf mln::p\_\-queue}$<$ P $>$::front (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{da/de0/a00317_a6dd6bfa21e276fe4457801d585ddc4e0}


Give the front site {\ttfamily p} of the queue; {\ttfamily p} is the least recently inserted site. 



Definition at line 224 of file p\_\-queue.hh.



Referenced by mln::p\_\-queue$<$ P $>$::pop\_\-front(), and mln::geom::impl::seeds2tiling().

\hypertarget{a00317_a45761ca0dad8df668f757daee16deed2}{
\index{mln::p\_\-queue@{mln::p\_\-queue}!has@{has}}
\index{has@{has}!mln::p_queue@{mln::p\_\-queue}}
\subsubsection[{has}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename P $>$ bool {\bf mln::p\_\-queue}$<$ P $>$::has (
\begin{DoxyParamCaption}
\item[{const util::index \&}]{ i}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{da/de0/a00317_a45761ca0dad8df668f757daee16deed2}


Test if index {\ttfamily i} belongs to this site set. 



Definition at line 183 of file p\_\-queue.hh.



References mln::p\_\-queue$<$ P $>$::nsites().

\hypertarget{a00317_a4d20795bd81cf2b0e69292174e7e960a}{
\index{mln::p\_\-queue@{mln::p\_\-queue}!has@{has}}
\index{has@{has}!mln::p_queue@{mln::p\_\-queue}}
\subsubsection[{has}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename P $>$ bool {\bf mln::p\_\-queue}$<$ P $>$::has (
\begin{DoxyParamCaption}
\item[{const {\bf psite} \&}]{ p}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{da/de0/a00317_a4d20795bd81cf2b0e69292174e7e960a}


Test if {\ttfamily p} belongs to this site set. 



Definition at line 170 of file p\_\-queue.hh.



References mln::p\_\-queue$<$ P $>$::nsites().

\hypertarget{a00317_af9836528197f731d64e8f0b05ea29979}{
\index{mln::p\_\-queue@{mln::p\_\-queue}!insert@{insert}}
\index{insert@{insert}!mln::p_queue@{mln::p\_\-queue}}
\subsubsection[{insert}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename P $>$ void {\bf mln::p\_\-queue}$<$ P $>$::insert (
\begin{DoxyParamCaption}
\item[{const P \&}]{ p}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{da/de0/a00317_af9836528197f731d64e8f0b05ea29979}


Insert a site {\ttfamily p} (equivalent as 'push'). 



Definition at line 261 of file p\_\-queue.hh.



References mln::p\_\-queue$<$ P $>$::push().

\hypertarget{a00317_adbeea39933d3580039e27a6904af024c}{
\index{mln::p\_\-queue@{mln::p\_\-queue}!is\_\-valid@{is\_\-valid}}
\index{is\_\-valid@{is\_\-valid}!mln::p_queue@{mln::p\_\-queue}}
\subsubsection[{is\_\-valid}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename P $>$ bool {\bf mln::p\_\-queue}$<$ P $>$::is\_\-valid (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{da/de0/a00317_adbeea39933d3580039e27a6904af024c}


This set is always valid so it returns true. 



Definition at line 191 of file p\_\-queue.hh.

\hypertarget{a00317_a1c679405f2f3a295a7a83a3b58d54998}{
\index{mln::p\_\-queue@{mln::p\_\-queue}!memory\_\-size@{memory\_\-size}}
\index{memory\_\-size@{memory\_\-size}!mln::p_queue@{mln::p\_\-queue}}
\subsubsection[{memory\_\-size}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename P $>$ std::size\_\-t {\bf mln::p\_\-queue}$<$ P $>$::memory\_\-size (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{da/de0/a00317_a1c679405f2f3a295a7a83a3b58d54998}


Return the size of this site set in memory. 



Definition at line 277 of file p\_\-queue.hh.



References mln::p\_\-queue$<$ P $>$::nsites().

\hypertarget{a00317_a35b6590c0eabb27091b5afea454d507f}{
\index{mln::p\_\-queue@{mln::p\_\-queue}!nsites@{nsites}}
\index{nsites@{nsites}!mln::p_queue@{mln::p\_\-queue}}
\subsubsection[{nsites}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename P $>$ unsigned {\bf mln::p\_\-queue}$<$ P $>$::nsites (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{da/de0/a00317_a35b6590c0eabb27091b5afea454d507f}


Give the number of sites. 



Definition at line 199 of file p\_\-queue.hh.



Referenced by mln::p\_\-queue$<$ P $>$::has(), mln::p\_\-queue$<$ P $>$::memory\_\-size(), and mln::p\_\-queue$<$ P $>$::operator\mbox{[}$\,$\mbox{]}().

\hypertarget{a00317_abf4516740f16338c0247043c8b5ec3d3}{
\index{mln::p\_\-queue@{mln::p\_\-queue}!operator\mbox{[}\mbox{]}@{operator[]}}
\index{operator\mbox{[}\mbox{]}@{operator[]}!mln::p_queue@{mln::p\_\-queue}}
\subsubsection[{operator[]}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename P $>$ const P \& {\bf mln::p\_\-queue}$<$ P $>$::operator\mbox{[}$\,$\mbox{]} (
\begin{DoxyParamCaption}
\item[{unsigned}]{ i}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{da/de0/a00317_abf4516740f16338c0247043c8b5ec3d3}


Return the {\ttfamily i-\/th} site. 



Definition at line 252 of file p\_\-queue.hh.



References mln::p\_\-queue$<$ P $>$::nsites().

\hypertarget{a00317_ab65b016942417868a5456295c17db16e}{
\index{mln::p\_\-queue@{mln::p\_\-queue}!pop@{pop}}
\index{pop@{pop}!mln::p_queue@{mln::p\_\-queue}}
\subsubsection[{pop}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename P $>$ void {\bf mln::p\_\-queue}$<$ P $>$::pop (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{da/de0/a00317_ab65b016942417868a5456295c17db16e}


Pop (remove) the front site {\ttfamily p} from the queue; {\ttfamily p} is the least recently inserted site. 



Definition at line 215 of file p\_\-queue.hh.



Referenced by mln::p\_\-queue$<$ P $>$::pop\_\-front(), and mln::geom::impl::seeds2tiling().

\hypertarget{a00317_a3529ef701998581b9f06a07400b7f64d}{
\index{mln::p\_\-queue@{mln::p\_\-queue}!pop\_\-front@{pop\_\-front}}
\index{pop\_\-front@{pop\_\-front}!mln::p_queue@{mln::p\_\-queue}}
\subsubsection[{pop\_\-front}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename P $>$ P {\bf mln::p\_\-queue}$<$ P $>$::pop\_\-front (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{da/de0/a00317_a3529ef701998581b9f06a07400b7f64d}


Pop (remove) the front site {\ttfamily p} from the queue; {\ttfamily p} is the least recently inserted site and give the front site {\ttfamily p} of the queue; {\ttfamily p} is the least recently inserted site. 



Definition at line 233 of file p\_\-queue.hh.



References mln::p\_\-queue$<$ P $>$::front(), and mln::p\_\-queue$<$ P $>$::pop().

\hypertarget{a00317_a71299812b3b50027c23bc029259e66d4}{
\index{mln::p\_\-queue@{mln::p\_\-queue}!push@{push}}
\index{push@{push}!mln::p_queue@{mln::p\_\-queue}}
\subsubsection[{push}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename P $>$ void {\bf mln::p\_\-queue}$<$ P $>$::push (
\begin{DoxyParamCaption}
\item[{const P \&}]{ p}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{da/de0/a00317_a71299812b3b50027c23bc029259e66d4}


Push a site {\ttfamily p} in the queue. 



Definition at line 207 of file p\_\-queue.hh.



Referenced by mln::p\_\-queue$<$ P $>$::insert(), and mln::geom::impl::seeds2tiling().

\hypertarget{a00317_a7f545f8ca34aa7504539be4c2a48a5ed}{
\index{mln::p\_\-queue@{mln::p\_\-queue}!std\_\-deque@{std\_\-deque}}
\index{std\_\-deque@{std\_\-deque}!mln::p_queue@{mln::p\_\-queue}}
\subsubsection[{std\_\-deque}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename P $>$ const std::deque$<$ P $>$ \& {\bf mln::p\_\-queue}$<$ P $>$::std\_\-deque (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{da/de0/a00317_a7f545f8ca34aa7504539be4c2a48a5ed}


Return the corresponding std::deque of sites. 



Definition at line 269 of file p\_\-queue.hh.

