\hypertarget{classmeow_1_1SplayTree__Range}{\section{meow\-:\-:Splay\-Tree\-\_\-\-Range$<$ Key, Value $>$ Class Template Reference}
\label{classmeow_1_1SplayTree__Range}\index{meow\-::\-Splay\-Tree\-\_\-\-Range$<$ Key, Value $>$@{meow\-::\-Splay\-Tree\-\_\-\-Range$<$ Key, Value $>$}}
}


基本上跟\-Splay\-Tree一樣, 不過這邊結合線段樹, 多了區間操作 (線段樹相關operator定義請見 {\ttfamily \hyperlink{classmeow_1_1SegmentTree}{Segment\-Tree}} )  




{\ttfamily \#include \char`\"{}Splay\-Tree.\-h\char`\"{}}

\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{classmeow_1_1SplayTree__Range_1_1Element}{Element}
\begin{DoxyCompactList}\small\item\em 類似 {\ttfamily stl} 的 {\ttfamily iterator} ,不過這邊叫做{\ttfamily \hyperlink{classmeow_1_1SplayTree__Range_1_1Element}{Element}} \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classmeow_1_1SplayTree__Range_acf3c8d90ff38a210ed9d64dd365d5e93}{Splay\-Tree\-\_\-\-Range} ()
\begin{DoxyCompactList}\small\item\em constructor \end{DoxyCompactList}\item 
\hyperlink{classmeow_1_1SplayTree__Range_aa5a5c774d04721cbe038ec883c01737a}{Splay\-Tree\-\_\-\-Range} (\hyperlink{classmeow_1_1SplayTree__Range}{Splay\-Tree\-\_\-\-Range} const \&tree2)
\begin{DoxyCompactList}\small\item\em constructor, 複製資料 \end{DoxyCompactList}\item 
\hyperlink{classmeow_1_1SplayTree__Range_afa919ebbc8feedc4c2ed2185d6207261}{$\sim$\-Splay\-Tree\-\_\-\-Range} ()
\begin{DoxyCompactList}\small\item\em destructor \end{DoxyCompactList}\item 
\hyperlink{classmeow_1_1SplayTree__Range}{Splay\-Tree\-\_\-\-Range} \& \hyperlink{classmeow_1_1SplayTree__Range_acb88cb76b50884221cbb58d2adcb4329}{copy\-From} (\hyperlink{classmeow_1_1SplayTree__Range}{Splay\-Tree\-\_\-\-Range} const \&tree2)
\begin{DoxyCompactList}\small\item\em 複製資料 \end{DoxyCompactList}\item 
void \hyperlink{classmeow_1_1SplayTree__Range_a17483e5f0028004cc4bf46699591fafe}{move\-To} (\hyperlink{classmeow_1_1SplayTree__Range}{Splay\-Tree\-\_\-\-Range} $\ast$tree2)
\begin{DoxyCompactList}\small\item\em 將資料都丟到 {\ttfamily tree2} 身上, 並且清空自己 \end{DoxyCompactList}\item 
\hyperlink{classmeow_1_1SplayTree__Range_1_1Element}{Element} \hyperlink{classmeow_1_1SplayTree__Range_a92ca3967d0f433a57b5057d61183f2aa}{lower\-Bound} (Key const \&key) const 
\begin{DoxyCompactList}\small\item\em 找出第一個(最小的) Element且 {\ttfamily k} $<$= 它的 Key, 並且回傳之. \end{DoxyCompactList}\item 
\hyperlink{classmeow_1_1SplayTree__Range_1_1Element}{Element} \hyperlink{classmeow_1_1SplayTree__Range_a492f68ede1f6423590ec2bfa3f839ab0}{upper\-Bound} (Key const \&key) const 
\begin{DoxyCompactList}\small\item\em 找出第一個(最小的) Element且 {\ttfamily k} $<$ 它的 Key, 並且回傳之. \end{DoxyCompactList}\item 
\hyperlink{classmeow_1_1SplayTree__Range_1_1Element}{Element} \hyperlink{classmeow_1_1SplayTree__Range_a05057d5df92737104b7431b4203cac11}{r\-Lower\-Bound} (Key const \&key) const 
\begin{DoxyCompactList}\small\item\em 找出第一個(最小的) Element且 {\ttfamily k} $>$= 它的 Key, 並且回傳之. \end{DoxyCompactList}\item 
\hyperlink{classmeow_1_1SplayTree__Range_1_1Element}{Element} \hyperlink{classmeow_1_1SplayTree__Range_ae0f6543101ce4864257b93786c21a5c8}{r\-Upper\-Bound} (Key const \&key) const 
\begin{DoxyCompactList}\small\item\em 找出第一個(最小的) Element且 {\ttfamily k} $>$ 它的 Key, 並且回傳之. \end{DoxyCompactList}\item 
\hyperlink{classmeow_1_1SplayTree__Range_1_1Element}{Element} \hyperlink{classmeow_1_1SplayTree__Range_a13c3591050f556251a33c03ce142acb1}{find} (Key const \&key) const 
\begin{DoxyCompactList}\small\item\em 找出 Key= {\ttfamily k} 的\-Elemenet 並回傳. 找不到的話回傳 {\ttfamily this-\/$>$\hyperlink{classmeow_1_1SplayTree__Range_ad3aaed040f619a3b14c3f9b598b7fecc}{end()}} \end{DoxyCompactList}\item 
\hyperlink{classmeow_1_1SplayTree__Range_1_1Element}{Element} \hyperlink{classmeow_1_1SplayTree__Range_a6e33546a3cb07d56548a1f64aa1fc711}{order} (size\-\_\-t order) const 
\begin{DoxyCompactList}\small\item\em 將\-Elements依照\-Key由小到大排序, 回傳第 {\ttfamily ord} 個\-Element (由0算起). \end{DoxyCompactList}\item 
\hyperlink{classmeow_1_1SplayTree__Range_1_1Element}{Element} \hyperlink{classmeow_1_1SplayTree__Range_a74207c8c8023d62111171cd64abfbe77}{first} () const 
\begin{DoxyCompactList}\small\item\em 回傳\-Key最小的\-Element, 如果\-Splay\-Tree為空, 則回傳 {\ttfamily this-\/$>$\hyperlink{classmeow_1_1SplayTree__Range_ad3aaed040f619a3b14c3f9b598b7fecc}{end()}} \end{DoxyCompactList}\item 
\hyperlink{classmeow_1_1SplayTree__Range_1_1Element}{Element} \hyperlink{classmeow_1_1SplayTree__Range_afd72a714bb2b7bce0ceedad1dea9e264}{last} () const 
\begin{DoxyCompactList}\small\item\em 回傳\-Key最大的\-Element, 如果\-Splay\-Tree為空, 則回傳 {\ttfamily this-\/$>$\hyperlink{classmeow_1_1SplayTree__Range_ad3aaed040f619a3b14c3f9b598b7fecc}{end()}} \end{DoxyCompactList}\item 
\hyperlink{classmeow_1_1SplayTree__Range_1_1Element}{Element} \hyperlink{classmeow_1_1SplayTree__Range_ad3aaed040f619a3b14c3f9b598b7fecc}{end} () const 
\begin{DoxyCompactList}\small\item\em 回傳一個指向\-N\-U\-L\-L的\-Element, \end{DoxyCompactList}\item 
size\-\_\-t \hyperlink{classmeow_1_1SplayTree__Range_afce0f36427e9105a3405176ed4eddf58}{size} () const 
\begin{DoxyCompactList}\small\item\em 回傳資料個數 \end{DoxyCompactList}\item 
bool \hyperlink{classmeow_1_1SplayTree__Range_a86abc6a3a19f874e86fb29b75c212fce}{empty} () const 
\begin{DoxyCompactList}\small\item\em 回傳是否為空 \end{DoxyCompactList}\item 
Value \hyperlink{classmeow_1_1SplayTree__Range_a91272707629fcec7cc9fa60594334002}{query} () const 
\begin{DoxyCompactList}\small\item\em 查找 \end{DoxyCompactList}\item 
Value \hyperlink{classmeow_1_1SplayTree__Range_a9952f914eb9449ae17f5ea0ece422af9}{query} (Key const \&\hyperlink{classmeow_1_1SplayTree__Range_a74207c8c8023d62111171cd64abfbe77}{first}, Key const \&\hyperlink{classmeow_1_1SplayTree__Range_afd72a714bb2b7bce0ceedad1dea9e264}{last}) const 
\begin{DoxyCompactList}\small\item\em 查找 \end{DoxyCompactList}\item 
void \hyperlink{classmeow_1_1SplayTree__Range_a514b6eac0a39ac0d365a5ee72eea78e8}{clear} ()
\begin{DoxyCompactList}\small\item\em 清空 \end{DoxyCompactList}\item 
bool \hyperlink{classmeow_1_1SplayTree__Range_a5e80acef8cd1a6732f5cfec65ab69d54}{insert} (Key const \&key, Value const \&value)
\begin{DoxyCompactList}\small\item\em 插入一組{\ttfamily }(Key ---$>$ {\ttfamily Value}) \end{DoxyCompactList}\item 
bool \hyperlink{classmeow_1_1SplayTree__Range_ae3cffdbb135d3f2518092c2e4b993e1f}{erase} (Key const \&key)
\begin{DoxyCompactList}\small\item\em 刪除一組資料 \end{DoxyCompactList}\item 
void \hyperlink{classmeow_1_1SplayTree__Range_a4e05023009c1c82a5d464a43d6777843}{key\-Offset} (Key const \&delta)
\begin{DoxyCompactList}\small\item\em 將所有\-Element的\-Key同加上 {\ttfamily delta} \end{DoxyCompactList}\item 
void \hyperlink{classmeow_1_1SplayTree__Range_a2974124d833383fc0b3f9fed6f18db2f}{value\-Offset} (Value const \&delta)
\begin{DoxyCompactList}\small\item\em 將所有\-Element的\-Value同加上 {\ttfamily delta} \end{DoxyCompactList}\item 
void \hyperlink{classmeow_1_1SplayTree__Range_abe3366aac14529a4b044b519a53c5bb7}{value\-Override} (Value const \&value)
\begin{DoxyCompactList}\small\item\em 將所有\-Element的\-Value全部設定成{\ttfamily value} \end{DoxyCompactList}\item 
void \hyperlink{classmeow_1_1SplayTree__Range_a1594362228633d8b026bb0f8c343384f}{split\-Out} (Key const \&upper\-\_\-bound, \hyperlink{classmeow_1_1SplayTree__Range}{Splay\-Tree\-\_\-\-Range} $\ast$right)
\begin{DoxyCompactList}\small\item\em 將{\ttfamily tree2} 清空, 再將所有\-Key $>$ {\ttfamily upper\-\_\-bound} 的\-Element都丟過去 \end{DoxyCompactList}\item 
bool \hyperlink{classmeow_1_1SplayTree__Range_a53a6ba929a8500fa74e0991e120d3401}{merge\-After} (\hyperlink{classmeow_1_1SplayTree__Range}{Splay\-Tree\-\_\-\-Range} $\ast$tree2)
\begin{DoxyCompactList}\small\item\em 合併 \end{DoxyCompactList}\item 
bool \hyperlink{classmeow_1_1SplayTree__Range_a42d874bda7b24108d0e861448eadce84}{merge} (\hyperlink{classmeow_1_1SplayTree__Range}{Splay\-Tree\-\_\-\-Range} $\ast$tree2)
\begin{DoxyCompactList}\small\item\em 合併 \end{DoxyCompactList}\item 
Value \& \hyperlink{classmeow_1_1SplayTree__Range_a2a4e8bffccdf807bfe6feb9d838ab44d}{operator\mbox{[}$\,$\mbox{]}} (Key const \&key)
\begin{DoxyCompactList}\small\item\em 就像{\ttfamily stl\-::map\-::operator}\mbox{[}\mbox{]} \end{DoxyCompactList}\item 
\hyperlink{classmeow_1_1SplayTree__Range}{Splay\-Tree\-\_\-\-Range} \& \hyperlink{classmeow_1_1SplayTree__Range_af93643b667895835f97e32e30959ca9e}{operator=} (\hyperlink{classmeow_1_1SplayTree__Range}{Splay\-Tree\-\_\-\-Range} const \&tree2)
\begin{DoxyCompactList}\small\item\em same as {\ttfamily copy\-From(tree2)} \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$class Key, class Value$>$class meow\-::\-Splay\-Tree\-\_\-\-Range$<$ Key, Value $>$}

基本上跟\-Splay\-Tree一樣, 不過這邊結合線段樹, 多了區間操作 (線段樹相關operator定義請見 {\ttfamily \hyperlink{classmeow_1_1SegmentTree}{Segment\-Tree}} ) 

\subsubsection*{Template Class Operators Request}

\begin{TabularC}{6}
\hline
\rowcolor{lightgray}\PBS\raggedleft {\bf const?}&\PBS\centering {\bf Typename}&\PBS\raggedleft {\bf Operator }&{\bf Parameters }&\PBS\centering {\bf Return Type }&{\bf Description }\\\cline{1-6}
\PBS\raggedleft const &\PBS\centering Key &\PBS\raggedleft operator+ &(Key {\ttfamily k}) &\PBS\centering Key &相加 \\\cline{1-6}
\PBS\raggedleft const &\PBS\centering Key &\PBS\raggedleft operator$<$ &(Key {\ttfamily k}) &\PBS\centering bool &大小比較 \\\cline{1-6}
\PBS\raggedleft &\PBS\centering Key &\PBS\raggedleft operator= &(Key {\ttfamily k}) &\PBS\centering Key &copy oper \\\cline{1-6}
\PBS\raggedleft &\PBS\centering Key &\PBS\raggedleft Key &(int {\ttfamily n}) &\PBS\centering &構子,{\ttfamily n} 永遠是0 \\\cline{1-6}
\PBS\raggedleft &\PBS\centering Value &\PBS\raggedleft Value &( ) &\PBS\centering &建構子 \\\cline{1-6}
\end{TabularC}


\begin{DoxyNote}{Note}
\-: -\/假設現在有兩個\-Splay\-Tree {\ttfamily A} 和 {\ttfamily B}, 則\-: -\/執行 {\ttfamily B.\-move\-To(\&\-A)} 後 {\ttfamily B} 會變成空的, {\ttfamily A} 原本擁有的資料也會覆蓋掉 -\/行 {\ttfamily A.\-merge(\&\-B)} 或 {\ttfamily A.\-merge\-After(\&\-B)} 後 如果檢查發現確實可以merge, 則之後 {\ttfamily B} 會變成空的
\end{DoxyNote}
\begin{DoxyAuthor}{Author}
cat\-\_\-leopard 
\end{DoxyAuthor}


\subsection{Constructor \& Destructor Documentation}
\hypertarget{classmeow_1_1SplayTree__Range_acf3c8d90ff38a210ed9d64dd365d5e93}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!Splay\-Tree\-\_\-\-Range@{Splay\-Tree\-\_\-\-Range}}
\index{Splay\-Tree\-\_\-\-Range@{Splay\-Tree\-\_\-\-Range}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{Splay\-Tree\-\_\-\-Range}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::{\bf Splay\-Tree\-\_\-\-Range} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_acf3c8d90ff38a210ed9d64dd365d5e93}


constructor 

\hypertarget{classmeow_1_1SplayTree__Range_aa5a5c774d04721cbe038ec883c01737a}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!Splay\-Tree\-\_\-\-Range@{Splay\-Tree\-\_\-\-Range}}
\index{Splay\-Tree\-\_\-\-Range@{Splay\-Tree\-\_\-\-Range}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{Splay\-Tree\-\_\-\-Range}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::{\bf Splay\-Tree\-\_\-\-Range} (
\begin{DoxyParamCaption}
\item[{{\bf Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$ const \&}]{tree2}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_aa5a5c774d04721cbe038ec883c01737a}


constructor, 複製資料 

\hypertarget{classmeow_1_1SplayTree__Range_afa919ebbc8feedc4c2ed2185d6207261}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!$\sim$\-Splay\-Tree\-\_\-\-Range@{$\sim$\-Splay\-Tree\-\_\-\-Range}}
\index{$\sim$\-Splay\-Tree\-\_\-\-Range@{$\sim$\-Splay\-Tree\-\_\-\-Range}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{$\sim$\-Splay\-Tree\-\_\-\-Range}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::$\sim${\bf Splay\-Tree\-\_\-\-Range} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_afa919ebbc8feedc4c2ed2185d6207261}


destructor 



\subsection{Member Function Documentation}
\hypertarget{classmeow_1_1SplayTree__Range_a514b6eac0a39ac0d365a5ee72eea78e8}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!clear@{clear}}
\index{clear@{clear}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{clear}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ void {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::clear (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_a514b6eac0a39ac0d365a5ee72eea78e8}


清空 

\hypertarget{classmeow_1_1SplayTree__Range_acb88cb76b50884221cbb58d2adcb4329}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!copy\-From@{copy\-From}}
\index{copy\-From@{copy\-From}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{copy\-From}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ {\bf Splay\-Tree\-\_\-\-Range}\& {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::copy\-From (
\begin{DoxyParamCaption}
\item[{{\bf Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$ const \&}]{tree2}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_acb88cb76b50884221cbb58d2adcb4329}


複製資料 

\hypertarget{classmeow_1_1SplayTree__Range_a86abc6a3a19f874e86fb29b75c212fce}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!empty@{empty}}
\index{empty@{empty}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{empty}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ bool {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::empty (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_a86abc6a3a19f874e86fb29b75c212fce}


回傳是否為空 

\hypertarget{classmeow_1_1SplayTree__Range_ad3aaed040f619a3b14c3f9b598b7fecc}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!end@{end}}
\index{end@{end}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{end}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ {\bf Element} {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::end (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_ad3aaed040f619a3b14c3f9b598b7fecc}


回傳一個指向\-N\-U\-L\-L的\-Element, 

以供 {\ttfamily find} ,{\ttfamily order} ,{\ttfamily first} ,{\ttfamily last} 等判斷是否有找到相對應的\-Element \hypertarget{classmeow_1_1SplayTree__Range_ae3cffdbb135d3f2518092c2e4b993e1f}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!erase@{erase}}
\index{erase@{erase}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{erase}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ bool {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::erase (
\begin{DoxyParamCaption}
\item[{Key const \&}]{key}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_ae3cffdbb135d3f2518092c2e4b993e1f}


刪除一組資料 

檢查是否已有\-Element的\-Key 為 {\ttfamily key}, 若有則刪除之, 並回傳 {\ttfamily true}, 否則則回傳 {\ttfamily false} \hypertarget{classmeow_1_1SplayTree__Range_a13c3591050f556251a33c03ce142acb1}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!find@{find}}
\index{find@{find}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{find}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ {\bf Element} {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::find (
\begin{DoxyParamCaption}
\item[{Key const \&}]{key}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_a13c3591050f556251a33c03ce142acb1}


找出 Key= {\ttfamily k} 的\-Elemenet 並回傳. 找不到的話回傳 {\ttfamily this-\/$>$\hyperlink{classmeow_1_1SplayTree__Range_ad3aaed040f619a3b14c3f9b598b7fecc}{end()}} 

\hypertarget{classmeow_1_1SplayTree__Range_a74207c8c8023d62111171cd64abfbe77}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!first@{first}}
\index{first@{first}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{first}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ {\bf Element} {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::first (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_a74207c8c8023d62111171cd64abfbe77}


回傳\-Key最小的\-Element, 如果\-Splay\-Tree為空, 則回傳 {\ttfamily this-\/$>$\hyperlink{classmeow_1_1SplayTree__Range_ad3aaed040f619a3b14c3f9b598b7fecc}{end()}} 

\hypertarget{classmeow_1_1SplayTree__Range_a5e80acef8cd1a6732f5cfec65ab69d54}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!insert@{insert}}
\index{insert@{insert}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{insert}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ bool {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::insert (
\begin{DoxyParamCaption}
\item[{Key const \&}]{key, }
\item[{Value const \&}]{value}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_a5e80acef8cd1a6732f5cfec65ab69d54}


插入一組{\ttfamily }(Key ---$>$ {\ttfamily Value}) 

檢查是否已有\-Element的\-Key 為 {\ttfamily key}, 若有則回傳 {\ttfamily false} , 否則將 一個 (Key -\/$>$ Value) = ({\ttfamily key} -\/$>$ {\ttfamily value})的\-Element加入, 並回傳 {\ttfamily true} \hypertarget{classmeow_1_1SplayTree__Range_a4e05023009c1c82a5d464a43d6777843}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!key\-Offset@{key\-Offset}}
\index{key\-Offset@{key\-Offset}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{key\-Offset}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ void {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::key\-Offset (
\begin{DoxyParamCaption}
\item[{Key const \&}]{delta}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_a4e05023009c1c82a5d464a43d6777843}


將所有\-Element的\-Key同加上 {\ttfamily delta} 

\hypertarget{classmeow_1_1SplayTree__Range_afd72a714bb2b7bce0ceedad1dea9e264}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!last@{last}}
\index{last@{last}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{last}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ {\bf Element} {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::last (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_afd72a714bb2b7bce0ceedad1dea9e264}


回傳\-Key最大的\-Element, 如果\-Splay\-Tree為空, 則回傳 {\ttfamily this-\/$>$\hyperlink{classmeow_1_1SplayTree__Range_ad3aaed040f619a3b14c3f9b598b7fecc}{end()}} 

\hypertarget{classmeow_1_1SplayTree__Range_a92ca3967d0f433a57b5057d61183f2aa}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!lower\-Bound@{lower\-Bound}}
\index{lower\-Bound@{lower\-Bound}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{lower\-Bound}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ {\bf Element} {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::lower\-Bound (
\begin{DoxyParamCaption}
\item[{Key const \&}]{key}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_a92ca3967d0f433a57b5057d61183f2aa}


找出第一個(最小的) Element且 {\ttfamily k} $<$= 它的 Key, 並且回傳之. 

找不到的話回傳 {\ttfamily this-\/$>$\hyperlink{classmeow_1_1SplayTree__Range_ad3aaed040f619a3b14c3f9b598b7fecc}{end()}} \hypertarget{classmeow_1_1SplayTree__Range_a42d874bda7b24108d0e861448eadce84}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!merge@{merge}}
\index{merge@{merge}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{merge}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ bool {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::merge (
\begin{DoxyParamCaption}
\item[{{\bf Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$ $\ast$}]{tree2}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_a42d874bda7b24108d0e861448eadce84}


合併 

檢查是否自己中的 Key 都小於 {\ttfamily tree2} 中的\-Key, 或是完全相反, 是的話把 {\ttfamily tree2`中的} \hyperlink{classmeow_1_1SplayTree__Range_1_1Element}{Element} 都搬到自己這, 同時清空 {\ttfamily tree2} , 否則回傳 {\ttfamily false} \hypertarget{classmeow_1_1SplayTree__Range_a53a6ba929a8500fa74e0991e120d3401}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!merge\-After@{merge\-After}}
\index{merge\-After@{merge\-After}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{merge\-After}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ bool {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::merge\-After (
\begin{DoxyParamCaption}
\item[{{\bf Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$ $\ast$}]{tree2}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_a53a6ba929a8500fa74e0991e120d3401}


合併 

檢查是否自己中的 Key 都小於 {\ttfamily tree2} 中的\-Key, 是的話把 {\ttfamily tree2`} 中的 \hyperlink{classmeow_1_1SplayTree__Range_1_1Element}{Element} 都搬到自己這, 同時清空 {\ttfamily tree2} , 否則回傳 {\ttfamily false} \hypertarget{classmeow_1_1SplayTree__Range_a17483e5f0028004cc4bf46699591fafe}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!move\-To@{move\-To}}
\index{move\-To@{move\-To}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{move\-To}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ void {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::move\-To (
\begin{DoxyParamCaption}
\item[{{\bf Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$ $\ast$}]{tree2}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_a17483e5f0028004cc4bf46699591fafe}


將資料都丟到 {\ttfamily tree2} 身上, 並且清空自己 

\hypertarget{classmeow_1_1SplayTree__Range_af93643b667895835f97e32e30959ca9e}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!operator=@{operator=}}
\index{operator=@{operator=}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{operator=}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ {\bf Splay\-Tree\-\_\-\-Range}\& {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::operator= (
\begin{DoxyParamCaption}
\item[{{\bf Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$ const \&}]{tree2}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_af93643b667895835f97e32e30959ca9e}


same as {\ttfamily copy\-From(tree2)} 

\hypertarget{classmeow_1_1SplayTree__Range_a2a4e8bffccdf807bfe6feb9d838ab44d}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!operator\mbox{[}$\,$\mbox{]}@{operator[]}}
\index{operator\mbox{[}$\,$\mbox{]}@{operator[]}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{operator[]}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ Value\& {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::operator\mbox{[}$\,$\mbox{]} (
\begin{DoxyParamCaption}
\item[{Key const \&}]{key}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_a2a4e8bffccdf807bfe6feb9d838ab44d}


就像{\ttfamily stl\-::map\-::operator}\mbox{[}\mbox{]} 

會先檢查是否已有\-Element的\-Key 為 {\ttfamily key}, 若有則回傳相對應的\-Value的\-Reference 否則先執行 {\ttfamily insert}(key,Value()) 再回傳相對應的\-Reference \hypertarget{classmeow_1_1SplayTree__Range_a6e33546a3cb07d56548a1f64aa1fc711}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!order@{order}}
\index{order@{order}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{order}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ {\bf Element} {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::order (
\begin{DoxyParamCaption}
\item[{size\-\_\-t}]{order}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_a6e33546a3cb07d56548a1f64aa1fc711}


將\-Elements依照\-Key由小到大排序, 回傳第 {\ttfamily ord} 個\-Element (由0算起). 

其中如果 {\ttfamily ord$>$N-\/1}, 則會回傳 {\ttfamily this-\/$>$\hyperlink{classmeow_1_1SplayTree__Range_afd72a714bb2b7bce0ceedad1dea9e264}{last()}} \hypertarget{classmeow_1_1SplayTree__Range_a91272707629fcec7cc9fa60594334002}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!query@{query}}
\index{query@{query}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{query}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ Value {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::query (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_a91272707629fcec7cc9fa60594334002}


查找 

詢問目前整個range的值 \hypertarget{classmeow_1_1SplayTree__Range_a9952f914eb9449ae17f5ea0ece422af9}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!query@{query}}
\index{query@{query}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{query}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ Value {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::query (
\begin{DoxyParamCaption}
\item[{Key const \&}]{first, }
\item[{Key const \&}]{last}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_a9952f914eb9449ae17f5ea0ece422af9}


查找 

詢問給定range的值 \hypertarget{classmeow_1_1SplayTree__Range_a05057d5df92737104b7431b4203cac11}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!r\-Lower\-Bound@{r\-Lower\-Bound}}
\index{r\-Lower\-Bound@{r\-Lower\-Bound}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{r\-Lower\-Bound}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ {\bf Element} {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::r\-Lower\-Bound (
\begin{DoxyParamCaption}
\item[{Key const \&}]{key}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_a05057d5df92737104b7431b4203cac11}


找出第一個(最小的) Element且 {\ttfamily k} $>$= 它的 Key, 並且回傳之. 

找不到的話回傳 {\ttfamily this-\/$>$\hyperlink{classmeow_1_1SplayTree__Range_ad3aaed040f619a3b14c3f9b598b7fecc}{end()}} \hypertarget{classmeow_1_1SplayTree__Range_ae0f6543101ce4864257b93786c21a5c8}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!r\-Upper\-Bound@{r\-Upper\-Bound}}
\index{r\-Upper\-Bound@{r\-Upper\-Bound}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{r\-Upper\-Bound}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ {\bf Element} {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::r\-Upper\-Bound (
\begin{DoxyParamCaption}
\item[{Key const \&}]{key}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_ae0f6543101ce4864257b93786c21a5c8}


找出第一個(最小的) Element且 {\ttfamily k} $>$ 它的 Key, 並且回傳之. 

找不到的話回傳 {\ttfamily this-\/$>$\hyperlink{classmeow_1_1SplayTree__Range_ad3aaed040f619a3b14c3f9b598b7fecc}{end()}} \hypertarget{classmeow_1_1SplayTree__Range_afce0f36427e9105a3405176ed4eddf58}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!size@{size}}
\index{size@{size}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{size}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ size\-\_\-t {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::size (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_afce0f36427e9105a3405176ed4eddf58}


回傳資料個數 

\hypertarget{classmeow_1_1SplayTree__Range_a1594362228633d8b026bb0f8c343384f}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!split\-Out@{split\-Out}}
\index{split\-Out@{split\-Out}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{split\-Out}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ void {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::split\-Out (
\begin{DoxyParamCaption}
\item[{Key const \&}]{upper\-\_\-bound, }
\item[{{\bf Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$ $\ast$}]{right}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_a1594362228633d8b026bb0f8c343384f}


將{\ttfamily tree2} 清空, 再將所有\-Key $>$ {\ttfamily upper\-\_\-bound} 的\-Element都丟過去 

\hypertarget{classmeow_1_1SplayTree__Range_a492f68ede1f6423590ec2bfa3f839ab0}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!upper\-Bound@{upper\-Bound}}
\index{upper\-Bound@{upper\-Bound}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{upper\-Bound}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ {\bf Element} {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::upper\-Bound (
\begin{DoxyParamCaption}
\item[{Key const \&}]{key}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_a492f68ede1f6423590ec2bfa3f839ab0}


找出第一個(最小的) Element且 {\ttfamily k} $<$ 它的 Key, 並且回傳之. 

找不到的話回傳 {\ttfamily this-\/$>$\hyperlink{classmeow_1_1SplayTree__Range_ad3aaed040f619a3b14c3f9b598b7fecc}{end()}} \hypertarget{classmeow_1_1SplayTree__Range_a2974124d833383fc0b3f9fed6f18db2f}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!value\-Offset@{value\-Offset}}
\index{value\-Offset@{value\-Offset}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{value\-Offset}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ void {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::value\-Offset (
\begin{DoxyParamCaption}
\item[{Value const \&}]{delta}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_a2974124d833383fc0b3f9fed6f18db2f}


將所有\-Element的\-Value同加上 {\ttfamily delta} 

\hypertarget{classmeow_1_1SplayTree__Range_abe3366aac14529a4b044b519a53c5bb7}{\index{meow\-::\-Splay\-Tree\-\_\-\-Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}!value\-Override@{value\-Override}}
\index{value\-Override@{value\-Override}!meow::SplayTree_Range@{meow\-::\-Splay\-Tree\-\_\-\-Range}}
\subsubsection[{value\-Override}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Key , class Value $>$ void {\bf meow\-::\-Splay\-Tree\-\_\-\-Range}$<$ Key, Value $>$\-::value\-Override (
\begin{DoxyParamCaption}
\item[{Value const \&}]{value}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classmeow_1_1SplayTree__Range_abe3366aac14529a4b044b519a53c5bb7}


將所有\-Element的\-Value全部設定成{\ttfamily value} 



The documentation for this class was generated from the following file\-:\begin{DoxyCompactItemize}
\item 
meowpp/dsa/\hyperlink{SplayTree_8h}{Splay\-Tree.\-h}\end{DoxyCompactItemize}
