mirror of
https://github.com/bolero-MURAKAMI/Sprout.git
synced 2025-02-17 10:25:49 +00:00
fix doc: tristate_lexicographical_compare delimiter version
This commit is contained in:
parent
06e387deb6
commit
2766cb0ca5
4 changed files with 75 additions and 14 deletions
|
@ -21,14 +21,32 @@ Interface
|
|||
InputIterator2 first2, InputIterator2 last2,
|
||||
Compare comp
|
||||
);
|
||||
|
||||
// delimiter version
|
||||
template<typename InputIterator1, typename T1, typename InputIterator2, typename T2>
|
||||
inline SPROUT_CONSTEXPR int
|
||||
tristate_lexicographical_compare(
|
||||
InputIterator1 first1, InputIterator1 last1, T1 const& delim1,
|
||||
InputIterator2 first2, InputIterator2 last2, T2 const& delim2
|
||||
);
|
||||
|
||||
template<typename InputIterator1, typename T1, typename InputIterator2, typename T2, typename Compare>
|
||||
inline SPROUT_CONSTEXPR int
|
||||
tristate_lexicographical_compare(
|
||||
InputIterator1 first1, InputIterator1 last1, T1 const& delim1,
|
||||
InputIterator2 first2, InputIterator2 last2, T2 const& delim2,
|
||||
Compare comp
|
||||
);
|
||||
|
||||
Returns
|
||||
========================================
|
||||
|
||||
| A value less than zero if the sequence of elements defined by the range [first1,last1) is lexicographically less than the sequence of elements defined by the range [first2,last2) and false otherwise.
|
||||
| A value greater than zero if the sequence of elements defined by the range [first1,last1) is lexicographically greater than the sequence of elements defined by the range [first2,last2) and false otherwise.
|
||||
| A value less than zero if the sequence of elements defined by the range [first1,last1) is lexicographically less than the sequence of elements defined by the range [first2,last2).
|
||||
| Otherwise, a value greater than zero if the sequence of elements defined by the range [first1,last1) is lexicographically greater than the sequence of elements defined by the range [first2,last2).
|
||||
| Otherwise, returns a zero value.
|
||||
|
||||
| If the delimiter version, last1 and last2 are replaced by ``find(first1, last1, delim1)`` and ``find(first2,last2,delim2)``.
|
||||
|
||||
Remarks
|
||||
========================================
|
||||
|
||||
|
@ -48,9 +66,11 @@ Examples
|
|||
using namespace sprout;
|
||||
|
||||
SPROUT_STATIC_CONSTEXPR auto input1 = array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}};
|
||||
SPROUT_STATIC_CONSTEXPR auto input2 = array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 11, 12, 13}};
|
||||
SPROUT_STATIC_CONSTEXPR auto result = sprout::tristate_lexicographical_compare(begin(input1), end(input1), begin(input2), end(input2));
|
||||
static_assert(result < 0, "input1 < input2 by lexicographical comparison.");
|
||||
SPROUT_STATIC_CONSTEXPR auto input2 = array<int, 10>{{1, 2, 3, 4, 5, 10, 9, 8, 7, 6}};
|
||||
SPROUT_STATIC_CONSTEXPR auto result1 = sprout::tristate_lexicographical_compare(begin(input1), end(input1), begin(input2), end(input2));
|
||||
SPROUT_STATIC_CONSTEXPR auto result2 = sprout::tristate_lexicographical_compare(begin(input1), end(input1), 10, begin(input2), end(input2), 10);
|
||||
static_assert(result1 < 0, "input1 < input2 by lexicographical comparison.");
|
||||
static_assert(result2 > 0, "input1 < input2 by lexicographical comparison(delimited by 10).");
|
||||
|
||||
Complexity
|
||||
========================================
|
||||
|
|
|
@ -113,16 +113,35 @@
|
|||
<span class="n">InputIterator2</span> <span class="n">first2</span><span class="p">,</span> <span class="n">InputIterator2</span> <span class="n">last2</span><span class="p">,</span>
|
||||
<span class="n">Compare</span> <span class="n">comp</span>
|
||||
<span class="p">);</span>
|
||||
|
||||
<span class="c1">// delimiter version</span>
|
||||
<span class="k">template</span><span class="o"><</span><span class="k">typename</span> <span class="n">InputIterator1</span><span class="p">,</span> <span class="k">typename</span> <span class="n">T1</span><span class="p">,</span> <span class="k">typename</span> <span class="n">InputIterator2</span><span class="p">,</span> <span class="k">typename</span> <span class="n">T2</span><span class="o">></span>
|
||||
<span class="kr">inline</span> <span class="n">SPROUT_CONSTEXPR</span> <span class="kt">int</span>
|
||||
<span class="n">tristate_lexicographical_compare</span><span class="p">(</span>
|
||||
<span class="n">InputIterator1</span> <span class="n">first1</span><span class="p">,</span> <span class="n">InputIterator1</span> <span class="n">last1</span><span class="p">,</span> <span class="n">T1</span> <span class="k">const</span><span class="o">&</span> <span class="n">delim1</span><span class="p">,</span>
|
||||
<span class="n">InputIterator2</span> <span class="n">first2</span><span class="p">,</span> <span class="n">InputIterator2</span> <span class="n">last2</span><span class="p">,</span> <span class="n">T2</span> <span class="k">const</span><span class="o">&</span> <span class="n">delim2</span>
|
||||
<span class="p">);</span>
|
||||
|
||||
<span class="k">template</span><span class="o"><</span><span class="k">typename</span> <span class="n">InputIterator1</span><span class="p">,</span> <span class="k">typename</span> <span class="n">T1</span><span class="p">,</span> <span class="k">typename</span> <span class="n">InputIterator2</span><span class="p">,</span> <span class="k">typename</span> <span class="n">T2</span><span class="p">,</span> <span class="k">typename</span> <span class="n">Compare</span><span class="o">></span>
|
||||
<span class="kr">inline</span> <span class="n">SPROUT_CONSTEXPR</span> <span class="kt">int</span>
|
||||
<span class="n">tristate_lexicographical_compare</span><span class="p">(</span>
|
||||
<span class="n">InputIterator1</span> <span class="n">first1</span><span class="p">,</span> <span class="n">InputIterator1</span> <span class="n">last1</span><span class="p">,</span> <span class="n">T1</span> <span class="k">const</span><span class="o">&</span> <span class="n">delim1</span><span class="p">,</span>
|
||||
<span class="n">InputIterator2</span> <span class="n">first2</span><span class="p">,</span> <span class="n">InputIterator2</span> <span class="n">last2</span><span class="p">,</span> <span class="n">T2</span> <span class="k">const</span><span class="o">&</span> <span class="n">delim2</span><span class="p">,</span>
|
||||
<span class="n">Compare</span> <span class="n">comp</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="returns">
|
||||
<h2>Returns<a class="headerlink" href="#returns" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="line-block">
|
||||
<div class="line">A value less than zero if the sequence of elements defined by the range [first1,last1) is lexicographically less than the sequence of elements defined by the range [first2,last2) and false otherwise.</div>
|
||||
<div class="line">A value greater than zero if the sequence of elements defined by the range [first1,last1) is lexicographically greater than the sequence of elements defined by the range [first2,last2) and false otherwise.</div>
|
||||
<div class="line">A value less than zero if the sequence of elements defined by the range [first1,last1) is lexicographically less than the sequence of elements defined by the range [first2,last2).</div>
|
||||
<div class="line">Otherwise, a value greater than zero if the sequence of elements defined by the range [first1,last1) is lexicographically greater than the sequence of elements defined by the range [first2,last2).</div>
|
||||
<div class="line">Otherwise, returns a zero value.</div>
|
||||
</div>
|
||||
<div class="line-block">
|
||||
<div class="line">If the delimiter version, last1 and last2 are replaced by <tt class="docutils literal"><span class="pre">find(first1,</span> <span class="pre">last1,</span> <span class="pre">delim1)</span></tt> and <tt class="docutils literal"><span class="pre">find(first2,last2,delim2)</span></tt>.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="remarks">
|
||||
<h2>Remarks<a class="headerlink" href="#remarks" title="Permalink to this headline">¶</a></h2>
|
||||
|
@ -143,9 +162,11 @@
|
|||
<span class="k">using</span> <span class="k">namespace</span> <span class="n">sprout</span><span class="p">;</span>
|
||||
|
||||
<span class="n">SPROUT_STATIC_CONSTEXPR</span> <span class="k">auto</span> <span class="n">input1</span> <span class="o">=</span> <span class="n">array</span><span class="o"><</span><span class="kt">int</span><span class="p">,</span> <span class="mi">10</span><span class="o">></span><span class="p">{{</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">6</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="mi">9</span><span class="p">,</span> <span class="mi">10</span><span class="p">}};</span>
|
||||
<span class="n">SPROUT_STATIC_CONSTEXPR</span> <span class="k">auto</span> <span class="n">input2</span> <span class="o">=</span> <span class="n">array</span><span class="o"><</span><span class="kt">int</span><span class="p">,</span> <span class="mi">10</span><span class="o">></span><span class="p">{{</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">6</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">11</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="mi">13</span><span class="p">}};</span>
|
||||
<span class="n">SPROUT_STATIC_CONSTEXPR</span> <span class="k">auto</span> <span class="n">result</span> <span class="o">=</span> <span class="n">sprout</span><span class="o">::</span><span class="n">tristate_lexicographical_compare</span><span class="p">(</span><span class="n">begin</span><span class="p">(</span><span class="n">input1</span><span class="p">),</span> <span class="n">end</span><span class="p">(</span><span class="n">input1</span><span class="p">),</span> <span class="n">begin</span><span class="p">(</span><span class="n">input2</span><span class="p">),</span> <span class="n">end</span><span class="p">(</span><span class="n">input2</span><span class="p">));</span>
|
||||
<span class="n">static_assert</span><span class="p">(</span><span class="n">result</span> <span class="o"><</span> <span class="mi">0</span><span class="p">,</span> <span class="s">"input1 < input2 by lexicographical comparison."</span><span class="p">);</span>
|
||||
<span class="n">SPROUT_STATIC_CONSTEXPR</span> <span class="k">auto</span> <span class="n">input2</span> <span class="o">=</span> <span class="n">array</span><span class="o"><</span><span class="kt">int</span><span class="p">,</span> <span class="mi">10</span><span class="o">></span><span class="p">{{</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="mi">9</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">6</span><span class="p">}};</span>
|
||||
<span class="n">SPROUT_STATIC_CONSTEXPR</span> <span class="k">auto</span> <span class="n">result1</span> <span class="o">=</span> <span class="n">sprout</span><span class="o">::</span><span class="n">tristate_lexicographical_compare</span><span class="p">(</span><span class="n">begin</span><span class="p">(</span><span class="n">input1</span><span class="p">),</span> <span class="n">end</span><span class="p">(</span><span class="n">input1</span><span class="p">),</span> <span class="n">begin</span><span class="p">(</span><span class="n">input2</span><span class="p">),</span> <span class="n">end</span><span class="p">(</span><span class="n">input2</span><span class="p">));</span>
|
||||
<span class="n">SPROUT_STATIC_CONSTEXPR</span> <span class="k">auto</span> <span class="n">result2</span> <span class="o">=</span> <span class="n">sprout</span><span class="o">::</span><span class="n">tristate_lexicographical_compare</span><span class="p">(</span><span class="n">begin</span><span class="p">(</span><span class="n">input1</span><span class="p">),</span> <span class="n">end</span><span class="p">(</span><span class="n">input1</span><span class="p">),</span> <span class="mi">10</span><span class="p">,</span> <span class="n">begin</span><span class="p">(</span><span class="n">input2</span><span class="p">),</span> <span class="n">end</span><span class="p">(</span><span class="n">input2</span><span class="p">),</span> <span class="mi">10</span><span class="p">);</span>
|
||||
<span class="n">static_assert</span><span class="p">(</span><span class="n">result1</span> <span class="o"><</span> <span class="mi">0</span><span class="p">,</span> <span class="s">"input1 < input2 by lexicographical comparison."</span><span class="p">);</span>
|
||||
<span class="n">static_assert</span><span class="p">(</span><span class="n">result2</span> <span class="o">></span> <span class="mi">0</span><span class="p">,</span> <span class="s">"input1 < input2 by lexicographical comparison(delimited by 10)."</span><span class="p">);</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -21,6 +21,22 @@ Interface
|
|||
InputIterator2 first2, InputIterator2 last2,
|
||||
Compare comp
|
||||
);
|
||||
|
||||
// delimiter version
|
||||
template<typename InputIterator1, typename T1, typename InputIterator2, typename T2>
|
||||
inline SPROUT_CONSTEXPR int
|
||||
tristate_lexicographical_compare(
|
||||
InputIterator1 first1, InputIterator1 last1, T1 const& delim1,
|
||||
InputIterator2 first2, InputIterator2 last2, T2 const& delim2
|
||||
);
|
||||
|
||||
template<typename InputIterator1, typename T1, typename InputIterator2, typename T2, typename Compare>
|
||||
inline SPROUT_CONSTEXPR int
|
||||
tristate_lexicographical_compare(
|
||||
InputIterator1 first1, InputIterator1 last1, T1 const& delim1,
|
||||
InputIterator2 first2, InputIterator2 last2, T2 const& delim2,
|
||||
Compare comp
|
||||
);
|
||||
|
||||
Returns
|
||||
========================================
|
||||
|
@ -29,6 +45,8 @@ Returns
|
|||
| Otherwise, a value greater than zero if the sequence of elements defined by the range [first1,last1) is lexicographically greater than the sequence of elements defined by the range [first2,last2).
|
||||
| Otherwise, returns a zero value.
|
||||
|
||||
| If the delimiter version, last1 and last2 are replaced by ``find(first1, last1, delim1)`` and ``find(first2,last2,delim2)``.
|
||||
|
||||
Remarks
|
||||
========================================
|
||||
|
||||
|
@ -48,9 +66,11 @@ Examples
|
|||
using namespace sprout;
|
||||
|
||||
SPROUT_STATIC_CONSTEXPR auto input1 = array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}};
|
||||
SPROUT_STATIC_CONSTEXPR auto input2 = array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 11, 12, 13}};
|
||||
SPROUT_STATIC_CONSTEXPR auto result = sprout::tristate_lexicographical_compare(begin(input1), end(input1), begin(input2), end(input2));
|
||||
static_assert(result < 0, "input1 < input2 by lexicographical comparison.");
|
||||
SPROUT_STATIC_CONSTEXPR auto input2 = array<int, 10>{{1, 2, 3, 4, 5, 10, 9, 8, 7, 6}};
|
||||
SPROUT_STATIC_CONSTEXPR auto result1 = sprout::tristate_lexicographical_compare(begin(input1), end(input1), begin(input2), end(input2));
|
||||
SPROUT_STATIC_CONSTEXPR auto result2 = sprout::tristate_lexicographical_compare(begin(input1), end(input1), 10, begin(input2), end(input2), 10);
|
||||
static_assert(result1 < 0, "input1 < input2 by lexicographical comparison.");
|
||||
static_assert(result2 > 0, "input1 < input2 by lexicographical comparison(delimited by 10).");
|
||||
|
||||
Complexity
|
||||
========================================
|
||||
|
|
Loading…
Add table
Reference in a new issue