Core: cosmetics, .docs

git-svn-id: svn://ultimatepp.org/upp/trunk@11681 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2018-01-10 19:52:44 +00:00
parent ce71d0ce87
commit dd38fcc808
4 changed files with 317 additions and 34 deletions

View file

@ -92,7 +92,7 @@ void CoStableSort(Range&& r)
}
template <class MasterRange, class Range2, class Less>
void CoIndexSort(MasterRange&& r, Range2& r2, const Less& less)
void CoIndexSort(MasterRange&& r, Range2&& r2, const Less& less)
{
ASSERT(r.GetCount() == r2.GetCount());
typedef decltype(r.begin()) I;
@ -105,12 +105,6 @@ void CoIndexSort(MasterRange&& r, Range2& r2, const Less& less)
less);
}
template <class MasterRange, class Range2, class Less>
void CoIndexSort(MasterRange&& r, Range2&& r2, const Less& less)
{
CoIndexSort(r, r2, less);
}
template <class MasterRange, class Range2>
void CoIndexSort(MasterRange&& r, Range2&& r2)
{
@ -224,7 +218,7 @@ void CoStableIndexSort3(MasterRange&& r, Range2&& r2, Range3&& r3, Range4&& r4,
}
template <class MasterRange, class Range2, class Range3, class Range4>
void CoStableIndexSort3(MasterRange&& r, Range2&& r2, Range3&& r3, Range4& r4)
void CoStableIndexSort3(MasterRange&& r, Range2&& r2, Range3&& r3, Range4&& r4)
{
CoStableIndexSort3(r, r2, r3, r4, std::less<ValueTypeOf<MasterRange>>());
}
@ -243,7 +237,7 @@ Vector<int> CoGetSortOrder(const Range& r, const Less& less)
}
template <class Range>
inline Vector<int> CoGetSortOrder(const Range& r)
Vector<int> CoGetSortOrder(const Range& r)
{
return CoGetSortOrder(r, std::less<ValueTypeOf<Range>>());
}
@ -263,7 +257,7 @@ Vector<int> CoGetStableSortOrder(const Range& r, const Less& less)
}
template <class Range>
inline Vector<int> CoGetStableSortOrder(const Range& r)
Vector<int> CoGetStableSortOrder(const Range& r)
{
return CoGetSortOrder(r, std::less<ValueTypeOf<Range>>());
}

View file

@ -419,7 +419,7 @@ Vector<int> GetSortOrder(const Range& r, const Less& less)
}
template <class Range>
inline Vector<int> GetSortOrder(const Range& r)
Vector<int> GetSortOrder(const Range& r)
{
return GetSortOrder(r, std::less<ValueTypeOf<Range>>());
}

View file

@ -0,0 +1,289 @@
topic "";
[2 $$0,0#00000000000000000000000000000000:Default]
[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class]
[l288;2 $$2,2#27521748481378242620020725143825:desc]
[0 $$3,0#96390100711032703541132217272105:end]
[H6;0 $$4,0#05600065144404261032431302351956:begin]
[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item]
[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement]
[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param]
[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam]
[b42;2 $$9,9#13035079074754324216151401829390:normal]
[{_}
[ {{10000@(113.42.0) [s0;%% [*@7;4 Parallel Sorting Template Functions]]}}&]
[s3; &]
[s5;:Upp`:`:CoSort`(Range`&`&`,const Less`&`): [@(0.0.255) template]_<[@(0.0.255) class]_
[*@4 Range], [@(0.0.255) class]_[*@4 Less]>&]
[s5;:Upp`:`:CoSort`(Range`&`&`,const Less`&`): [@(0.0.255) void]_[* CoSort]([*@4 Range][@(0.0.255) `&
`&]_[*@3 c], [@(0.0.255) const]_[*@4 Less][@(0.0.255) `&]_[*@3 less])&]
[s2;%% Sorts range [%-@3 c] with ordering is defined by [%-*@3 less].
The order of elements with the same value can be changed (unstable
sort).&]
[s3; &]
[s4; &]
[s5;:Upp`:`:CoSort`(Range`&`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 Range]>&]
[s5;:Upp`:`:CoSort`(Range`&`&`): [@(0.0.255) void]_[* CoSort]([*@4 Range][@(0.0.255) `&`&]_[*@3 c
])&]
[s2;%% Sorts range [%-@3 c] with ordering is defined by [*/ operator<].
The order of elements with the same value can be changed (unstable
sort).&]
[s3;%% &]
[s4; &]
[s5;:Upp`:`:CoStableSort`(Range`&`&`,const Less`&`): [@(0.0.255) template]_<[@(0.0.255) c
lass]_[*@4 Range], [@(0.0.255) class]_[*@4 Less]>&]
[s5;:Upp`:`:CoStableSort`(Range`&`&`,const Less`&`): [@(0.0.255) void]_[* CoStableSort]([*@4 R
ange][@(0.0.255) `&`&]_[*@3 r], [@(0.0.255) const]_[*@4 Less][@(0.0.255) `&]_[*@3 less])&]
[s2;%% Sorts container [%-@3 c] with ordering is defined by [%-*@3 less].
The order of elements with the same value stays unchanged (stable
sort).&]
[s6;%% &]
[s4; &]
[s5;:Upp`:`:CoStableSort`(Range`&`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 Range
]>&]
[s5;:Upp`:`:CoStableSort`(Range`&`&`): [@(0.0.255) void]_[* CoStableSort]([*@4 Range][@(0.0.255) `&
`&]_[*@3 r])&]
[s2;%% Sorts container [%-@3 c] with ordering is defined by [*/ operator<].
The order of elements with the same value stays unchanged (stable
sort).&]
[s6;%% &]
[s4; &]
[s5;:Upp`:`:CoIndexSort`(MasterRange`&`&`,Range2`&`&`,const Less`&`): [@(0.0.255) templ
ate]_<[@(0.0.255) class]_[*@4 MasterRange], [@(0.0.255) class]_[*@4 Range2],
[@(0.0.255) class]_[*@4 Less]>&]
[s5;:Upp`:`:CoIndexSort`(MasterRange`&`&`,Range2`&`&`,const Less`&`): [@(0.0.255) void]_
[* CoIndexSort]([*@4 MasterRange][@(0.0.255) `&`&]_[*@3 r], [*@4 Range2][@(0.0.255) `&`&]_[*@3 r
2], [@(0.0.255) const]_[*@4 Less][@(0.0.255) `&]_[*@3 less])&]
[s5;:Upp`:`:CoIndexSort2`(MasterRange`&`&`,Range2`&`&`,Range3`&`&`,const Less`&`): [@(0.0.255) t
emplate]_<[@(0.0.255) class]_[*@4 MasterRange], [@(0.0.255) class]_[*@4 Range2],
[@(0.0.255) class]_[*@4 Range3], [@(0.0.255) class]_[*@4 Less]>&]
[s5;:Upp`:`:CoIndexSort2`(MasterRange`&`&`,Range2`&`&`,Range3`&`&`,const Less`&`): [@(0.0.255) v
oid]_[* CoIndexSort2]([*@4 MasterRange][@(0.0.255) `&`&]_[*@3 r], [*@4 Range2][@(0.0.255) `&`&
]_[*@3 r2], [*@4 Range3][@(0.0.255) `&`&]_[*@3 r3], [@(0.0.255) const]_[*@4 Less][@(0.0.255) `&
]_[*@3 less])&]
[s5;:Upp`:`:CoIndexSort3`(MasterRange`&`&`,Range2`&`&`,Range3`&`&`,Range4`&`&`,const Less`&`): [@(0.0.255) t
emplate]_<[@(0.0.255) class]_[*@4 MasterRange], [@(0.0.255) class]_[*@4 Range2],
[@(0.0.255) class]_[*@4 Range3], [@(0.0.255) class]_[*@4 Range4], [@(0.0.255) class]_[*@4 Les
s]>&]
[s5;:Upp`:`:CoIndexSort3`(MasterRange`&`&`,Range2`&`&`,Range3`&`&`,Range4`&`&`,const Less`&`): [@(0.0.255) v
oid]_[* CoIndexSort3]([*@4 MasterRange][@(0.0.255) `&`&]_[*@3 r], [*@4 Range2][@(0.0.255) `&`&
]_[*@3 r2], [*@4 Range3][@(0.0.255) `&`&]_[*@3 r3], [*@4 Range4][@(0.0.255) `&`&]_[*@3 r4],
[@(0.0.255) const]_[*@4 Less][@(0.0.255) `&]_[*@3 less])&]
[s2;%% Sorts 2, 3 or 4 containers. All containers must have same
number of items. Resulting order is defined by the [%-*@3 r ]container.
Ordering is defined by [* less].&]
[s3;%% &]
[s4; &]
[s5;:Upp`:`:CoIndexSort`(MasterRange`&`&`,Range2`&`&`): [@(0.0.255) template]_<[@(0.0.255) c
lass]_[*@4 MasterRange], [@(0.0.255) class]_[*@4 Range2]>&]
[s5;:Upp`:`:CoIndexSort`(MasterRange`&`&`,Range2`&`&`): [@(0.0.255) void]_[* CoIndexSort](
[*@4 MasterRange][@(0.0.255) `&`&]_[*@3 r], [*@4 Range2][@(0.0.255) `&`&]_[*@3 r2])&]
[s5;:Upp`:`:CoIndexSort2`(MasterRange`&`&`,Range2`&`&`,Range3`&`&`): [@(0.0.255) templa
te]_<[@(0.0.255) class]_[*@4 MasterRange], [@(0.0.255) class]_[*@4 Range2],
[@(0.0.255) class]_[*@4 Range3]>&]
[s5;:Upp`:`:CoIndexSort2`(MasterRange`&`&`,Range2`&`&`,Range3`&`&`): [@(0.0.255) void]_
[* CoIndexSort2]([*@4 MasterRange][@(0.0.255) `&`&]_[*@3 r], [*@4 Range2][@(0.0.255) `&`&]_[*@3 r
2], [*@4 Range3][@(0.0.255) `&`&]_[*@3 r3])&]
[s5;:Upp`:`:CoIndexSort3`(MasterRange`&`&`,Range2`&`&`,Range3`&`&`,Range4`&`&`): [@(0.0.255) t
emplate]_<[@(0.0.255) class]_[*@4 MasterRange], [@(0.0.255) class]_[*@4 Range2],
[@(0.0.255) class]_[*@4 Range3], [@(0.0.255) class]_[*@4 Range4]>&]
[s5;:Upp`:`:CoIndexSort3`(MasterRange`&`&`,Range2`&`&`,Range3`&`&`,Range4`&`&`): [@(0.0.255) v
oid]_[* CoIndexSort3]([*@4 MasterRange][@(0.0.255) `&`&]_[*@3 r], [*@4 Range2][@(0.0.255) `&`&
]_[*@3 r2], [*@4 Range3][@(0.0.255) `&`&]_[*@3 r3], [*@4 Range4][@(0.0.255) `&`&]_[*@3 r4])&]
[s2;%% Sorts 2, 3 or 4 containers. All containers must have same
number of items. Resulting order is defined by the [%-*@3 r ]container.
Ordering is defined by [*/ operator<].&]
[s3;%% &]
[s4; &]
[s5;:Upp`:`:CoStableIndexSort`(MasterRange`&`&`,Range2`&`&`,const Less`&`): [@(0.0.255) t
emplate]_<[@(0.0.255) class]_[*@4 MasterRange], [@(0.0.255) class]_[*@4 Range2],
[@(0.0.255) class]_[*@4 Less]>&]
[s5;:Upp`:`:CoStableIndexSort`(MasterRange`&`&`,Range2`&`&`,const Less`&`): [@(0.0.255) v
oid]_[* CoStableIndexSort]([*@4 MasterRange][@(0.0.255) `&`&]_[*@3 r],
[*@4 Range2][@(0.0.255) `&`&]_[*@3 r2], [@(0.0.255) const]_[*@4 Less][@(0.0.255) `&]_[*@3 less])
&]
[s5;:Upp`:`:CoStableIndexSort`(MasterRange`&`&`,Range2`&`&`,Range3`&`&`,const Less`&`): [@(0.0.255) t
emplate]_<[@(0.0.255) class]_[*@4 MasterRange], [@(0.0.255) class]_[*@4 Range2],
[@(0.0.255) class]_[*@4 Range3],[@(0.0.255) class]_[*@4 Less]>&]
[s5;:Upp`:`:CoStableIndexSort2`(MasterRange`&`&`,Range2`&`&`,Range3`&`&`,const Less`&`): [@(0.0.255) v
oid]_[* CoStableIndexSort2]([*@4 MasterRange][@(0.0.255) `&`&]_[*@3 r],
[*@4 Range2][@(0.0.255) `&`&]_[*@3 r2], [*@4 Range3][@(0.0.255) `&`&]_[*@3 r3],
[@(0.0.255) const]_[*@4 Less][@(0.0.255) `&]_[*@3 less])&]
[s5;:Upp`:`:CoStableIndexSort3`(MasterRange`&`&`,Range2`&`&`,Range3`&`&`,Range4`&`&`,const Less`&`): [@(0.0.255) t
emplate]_<[@(0.0.255) class]_[*@4 MasterRange], [@(0.0.255) class]_[*@4 Range2],
[@(0.0.255) class]_[*@4 Range3], [@(0.0.255) class]_[*@4 Range4], [@(0.0.255) class]_[*@4 Les
s]>&]
[s5;:Upp`:`:CoStableIndexSort3`(MasterRange`&`&`,Range2`&`&`,Range3`&`&`,Range4`&`&`,const Less`&`): [@(0.0.255) v
oid]_[* CoStableIndexSort3]([*@4 MasterRange][@(0.0.255) `&`&]_[*@3 r],
[*@4 Range2][@(0.0.255) `&`&]_[*@3 r2], [*@4 Range3][@(0.0.255) `&`&]_[*@3 r3],
[*@4 Range4][@(0.0.255) `&`&]_[*@3 r4], [@(0.0.255) const]_[*@4 Less][@(0.0.255) `&]_[*@3 less])
&]
[s2;%% Sorts 2, 3 or 4 containers. All containers must have same
number of items. Resulting order is defined by the [%-*@3 r ]container.
Ordering is defined by [* less]. The order of elements with the
same value stays unchanged (stable sort).&]
[s3;%% &]
[s4; &]
[s5;:Upp`:`:CoStableIndexSort`(MasterRange`&`&`,Range2`&`&`): [@(0.0.255) template]_<[@(0.0.255) c
lass]_[*@4 MasterRange], [@(0.0.255) class]_[*@4 Range2]>&]
[s5;:Upp`:`:CoStableIndexSort`(MasterRange`&`&`,Range2`&`&`): [@(0.0.255) void]_[* CoStab
leIndexSort]([*@4 MasterRange][@(0.0.255) `&`&]_[*@3 r], [*@4 Range2][@(0.0.255) `&`&]_[*@3 r
2])&]
[s5;:Upp`:`:CoStableIndexSort2`(MasterRange`&`&`,Range2`&`&`,Range3`&`&`): [@(0.0.255) t
emplate]_<[@(0.0.255) class]_[*@4 MasterRange], [@(0.0.255) class]_[*@4 Range2],
[@(0.0.255) class]_[*@4 Range3]>&]
[s5;:Upp`:`:CoStableIndexSort2`(MasterRange`&`&`,Range2`&`&`,Range3`&`&`): [@(0.0.255) v
oid]_[* CoStableIndexSort2]([*@4 MasterRange][@(0.0.255) `&`&]_[*@3 r],
[*@4 Range2][@(0.0.255) `&`&]_[*@3 r2], [*@4 Range3][@(0.0.255) `&`&]_[*@3 r3])&]
[s5;:Upp`:`:CoStableIndexSort3`(MasterRange`&`&`,Range2`&`&`,Range3`&`&`,Range4`&`&`): [@(0.0.255) t
emplate]_<[@(0.0.255) class]_[*@4 MasterRange], [@(0.0.255) class]_[*@4 Range2],
[@(0.0.255) class]_[*@4 Range3], [@(0.0.255) class]_[*@4 Range4]>&]
[s5;:Upp`:`:CoStableIndexSort3`(MasterRange`&`&`,Range2`&`&`,Range3`&`&`,Range4`&`&`): [@(0.0.255) v
oid]_[* CoStableIndexSort3]([*@4 MasterRange][@(0.0.255) `&`&]_[*@3 r],
[*@4 Range2][@(0.0.255) `&`&]_[*@3 r2], [*@4 Range3][@(0.0.255) `&`&]_[*@3 r3],
[*@4 Range4][@(0.0.255) `&`&]_[*@3 r4])&]
[s2;%% Sorts pair of containers. Both containers must have same number
of items. Resulting order is determined by the [%-*@3 r ]container.
Ordering is determined by [*/ operator<].&]
[s3;%% &]
[s4; &]
[s5;:Upp`:`:CoGetSortOrder`(const Range`&`,const Less`&`): [@(0.0.255) template]_<[@(0.0.255) c
lass]_[*@4 Range], [@(0.0.255) class]_[*@4 Less]>&]
[s5;:Upp`:`:CoGetSortOrder`(const Range`&`,const Less`&`): [_^Upp`:`:Vector^ Vector]<[@(0.0.255) i
nt]>_[* CoGetSortOrder]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r],
[@(0.0.255) const]_[*@4 Less][@(0.0.255) `&]_[*@3 less])&]
[s2;%% Creates ascending order of values in [%-*@3 container]. Ordering
is determined by [%-*@3 less]. The order of elements with the same
value can be changed (unstable sort).&]
[s3;%% &]
[s4; &]
[s5;:Upp`:`:CoGetSortOrder`(const Range`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 R
ange]>&]
[s5;:Upp`:`:CoGetSortOrder`(const Range`&`): [_^Upp`:`:Vector^ Vector]<[@(0.0.255) int]>_
[* CoGetSortOrder]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r])&]
[s2;%% Creates ascending order of values in [%-*@3 container]. Ordering
is determined by [*/ operator<]. The order of elements with the
same value can be changed (unstable sort).&]
[s3;%% &]
[s4; &]
[s5;:Upp`:`:CoGetStableSortOrder`(const Range`&`,const Less`&`): [@(0.0.255) template]_
<[@(0.0.255) class]_[*@4 Range], [@(0.0.255) class]_[*@4 Less]>&]
[s5;:Upp`:`:CoGetStableSortOrder`(const Range`&`,const Less`&`): [_^Upp`:`:Vector^ Vect
or]<[@(0.0.255) int]>_[* CoGetStableSortOrder]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&
]_[*@3 r], [@(0.0.255) const]_[*@4 Less][@(0.0.255) `&]_[*@3 less])&]
[s2;%% Creates ascending order of values in [%-*@3 container]. Ordering
is determined by [%-*@3 less]. The order of elements with the same
value stays unchanged (stable sort).&]
[s3;%% &]
[s4; &]
[s5;:Upp`:`:CoGetStableSortOrder`(const Range`&`): [@(0.0.255) template]_<[@(0.0.255) cla
ss]_[*@4 Range]>&]
[s5;:Upp`:`:CoGetStableSortOrder`(const Range`&`): [_^Upp`:`:Vector^ Vector]<[@(0.0.255) i
nt]>_[* CoGetStableSortOrder]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r])&]
[s2;%% Creates ascending order of values in [%-*@3 container]. Ordering
is determined by [*/ operator<]. The order of elements with the
same value stays unchanged (stable sort).&]
[s3;%% &]
[s4; &]
[s5;:Upp`:`:CoSortByKey`(Map`&`,const Less`&`): [@(0.0.255) template]_<[@(0.0.255) class]_
[*@4 Map], [@(0.0.255) class]_[*@4 Less]>&]
[s5;:Upp`:`:CoSortByKey`(Map`&`,const Less`&`): [@(0.0.255) void]_[* CoSortByKey]([*@4 Map][@(0.0.255) `&
]_[*@3 map], [@(0.0.255) const]_[*@4 Less][@(0.0.255) `&]_[*@3 less])&]
[s2;%% Sorts VectorMap or ArrayMap (or any other hypothetical container
that supports required interfaces) [%-*@3 map] by keys, using [%-*@3 less]
as sorting predicate.&]
[s3;%% &]
[s4; &]
[s5;:Upp`:`:CoSortByKey`(Map`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 Map]>&]
[s5;:Upp`:`:CoSortByKey`(Map`&`): [@(0.0.255) void]_[* CoSortByKey]([*@4 Map][@(0.0.255) `&]_
[*@3 map])&]
[s2;%% Sorts VectorMap or ArrayMap (or any other hypothetical container
that supports required interfaces) [%-*@3 map] by keys, using operator<
as sorting predicate.&]
[s3;%% &]
[s4; &]
[s5;:Upp`:`:CoSortByValue`(Map`&`,const Less`&`): [@(0.0.255) template]_<[@(0.0.255) clas
s]_[*@4 Map], [@(0.0.255) class]_[*@4 Less]>&]
[s5;:Upp`:`:CoSortByValue`(Map`&`,const Less`&`): [@(0.0.255) void]_[* CoSortByValue]([*@4 M
ap][@(0.0.255) `&]_[*@3 map], [@(0.0.255) const]_[*@4 Less][@(0.0.255) `&]_[*@3 less])&]
[s2;%% Sorts VectorMap or ArrayMap (or any other hypothetical container
that supports required interfaces) [%-*@3 map] by values, using
[%-*@3 less] as sorting predicate.&]
[s3;%% &]
[s4; &]
[s5;:Upp`:`:CoSortByValue`(Map`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 Map]>&]
[s5;:Upp`:`:CoSortByValue`(Map`&`): [@(0.0.255) void]_[* CoSortByValue]([*@4 Map][@(0.0.255) `&
]_[*@3 map])&]
[s2;%% Sorts VectorMap or ArrayMap (or any other hypothetical container
that supports required interfaces) [%-*@3 map] by values, using
operator< as sorting predicate.&]
[s3;%% &]
[s4; &]
[s5;:Upp`:`:CoStableSortByKey`(Map`&`,const Less`&`): [@(0.0.255) template]_<[@(0.0.255) c
lass]_[*@4 Map], [@(0.0.255) class]_[*@4 Less]>&]
[s5;:Upp`:`:CoStableSortByKey`(Map`&`,const Less`&`): [@(0.0.255) void]_[* CoStableSortBy
Key]([*@4 Map][@(0.0.255) `&]_[*@3 map], [@(0.0.255) const]_[*@4 Less][@(0.0.255) `&]_[*@3 less
])&]
[s2;%% Sorts VectorMap or ArrayMap (or any other hypothetical container
that supports required interfaces) [%-*@3 map] by keys, using [%-*@3 less]
as sorting predicate. Stable: retains the order of equal elements.&]
[s3;%% &]
[s4; &]
[s5;:Upp`:`:CoStableSortByKey`(Map`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 Map]>
&]
[s5;:Upp`:`:CoStableSortByKey`(Map`&`): [@(0.0.255) void]_[* CoStableSortByKey]([*@4 Map][@(0.0.255) `&
]_[*@3 map])&]
[s2;%% Sorts VectorMap or ArrayMap (or any other hypothetical container
that supports required interfaces) [%-*@3 map] by keys, using operator<
as sorting predicate. Stable: retains the order of equal elements.&]
[s3;%% &]
[s4; &]
[s5;:Upp`:`:CoStableSortByValue`(Map`&`,const Less`&`): [@(0.0.255) template]_<[@(0.0.255) c
lass]_[*@4 Map], [@(0.0.255) class]_[*@4 Less]>&]
[s5;:Upp`:`:CoStableSortByValue`(Map`&`,const Less`&`): [@(0.0.255) void]_[* CoStableSort
ByValue]([*@4 Map][@(0.0.255) `&]_[*@3 map], [@(0.0.255) const]_[*@4 Less][@(0.0.255) `&]_[*@3 l
ess])&]
[s2;%% Sorts VectorMap or ArrayMap (or any other hypothetical container
that supports required interfaces) [%-*@3 map] by values, using
[%-*@3 less] as sorting predicate. Stable: retains the order of
equal elements.&]
[s3;%% &]
[s4; &]
[s5;:Upp`:`:CoStableSortByValue`(Map`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 Ma
p]>&]
[s5;:Upp`:`:CoStableSortByValue`(Map`&`): [@(0.0.255) void]_[* CoStableSortByValue]([*@4 Ma
p][@(0.0.255) `&]_[*@3 map])&]
[s2;%% Sorts VectorMap or ArrayMap (or any other hypothetical container
that supports required interfaces) [%-*@3 map] by values, using
operator< as sorting predicate. Stable: retains the order of equal
elements.&]
[s3;%% &]
[s4; &]
[s5;:Upp`:`:CoSortIndex`(Upp::Index`&`,const Less`&`): [@(0.0.255) template]_<[@(0.0.255) clas
s]_[*@4 Index], [@(0.0.255) class]_[*@4 Less]>&]
[s5;:Upp`:`:CoSortIndex`(Upp::Index`&`,const Less`&`): [@(0.0.255) void]_[* CoSortIndex]([*@4 In
dex][@(0.0.255) `&]_[*@3 index], [@(0.0.255) const]_[*@4 Less][@(0.0.255) `&]_[*@3 less])&]
[s2;%% Sorts Index or ArrayIndex using [%-*@3 less] as sorting predicate.&]
[s3;%% &]
[s4; &]
[s5;:Upp`:`:CoSortIndex`(Upp::Index`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 Index]>&]
[s5;:Upp`:`:CoSortIndex`(Upp::Index`&`): [@(0.0.255) void]_[* CoSortIndex]([*@4 Index][@(0.0.255) `&
]_[*@3 index])&]
[s2;%% Sorts Index or ArrayIndex.&]
[s3;%% &]
[s4; &]
[s5;:Upp`:`:CoStableSortIndex`(Upp::Index`&`,const Less`&`): [@(0.0.255) template]_<[@(0.0.255) c
lass]_[*@4 Index], [@(0.0.255) class]_[*@4 Less]>&]
[s5;:Upp`:`:CoStableSortIndex`(Upp::Index`&`,const Less`&`): [@(0.0.255) void]_[* CoStableSort
Index]([*@4 Index][@(0.0.255) `&]_[*@3 index], [@(0.0.255) const]_[*@4 Less][@(0.0.255) `&]_[*@3 l
ess])&]
[s2;%% Sorts Index or ArrayIndex using [%-*@3 less] as sorting predicate.
Stable: retains the order of equal elements.&]
[s3;%% &]
[s4; &]
[s5;:Upp`:`:CoStableSortIndex`(Upp::Index`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 In
dex]>&]
[s5;:Upp`:`:CoStableSortIndex`(Upp::Index`&`): [@(0.0.255) void]_[* CoStableSortIndex]([*@4 Inde
x][@(0.0.255) `&]_[*@3 index])&]
[s2;%% Sorts Index or ArrayIndex. Stable: retains the order of equal
elements.&]
[s0;%% ]]

View file

@ -10,10 +10,8 @@ topic "Sorting template functions";
[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam]
[b42;2 $$9,9#13035079074754324216151401829390:normal]
[{_}
[ {{10000@(113.42.0) [s0;%% [*@7;4 Sorting template functions]]}}&]
[ {{10000@(113.42.0) [s0;%% [*@7;4 Sorting Template Functions]]}}&]
[s3; &]
[s3;%% &]
[s4; &]
[s5;:Upp`:`:Sort`(Range`&`&`,const Less`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 R
ange], [@(0.0.255) class]_[*@4 Less]>&]
[s5;:Upp`:`:Sort`(Range`&`&`,const Less`&`): [@(0.0.255) void]_[* Sort]([*@4 Range][@(0.0.255) `&
@ -103,10 +101,10 @@ emplate]_<[@(0.0.255) class]_[*@4 MasterRange], [@(0.0.255) class]_[*@4 Range2],
oid]_[* StableIndexSort]([*@4 MasterRange][@(0.0.255) `&`&]_[*@3 r],
[*@4 Range2][@(0.0.255) `&`&]_[*@3 r2], [@(0.0.255) const]_[*@4 Less][@(0.0.255) `&]_[*@3 less])
&]
[s5;:Upp`:`:StableIndexSort`(MasterRange`&`&`,Range2`&`&`,Range3`&`&`,const Less`&`): [@(0.0.255) t
[s5;:Upp`:`:StableIndexSort2`(MasterRange`&`&`,Range2`&`&`,Range3`&`&`,const Less`&`): [@(0.0.255) t
emplate]_<[@(0.0.255) class]_[*@4 MasterRange], [@(0.0.255) class]_[*@4 Range2],
[@(0.0.255) class]_[*@4 Range3],[@(0.0.255) class]_[*@4 Less]>&]
[s5;:Upp`:`:StableIndexSort`(MasterRange`&`&`,Range2`&`&`,Range3`&`&`,const Less`&`): [@(0.0.255) v
[s5;:Upp`:`:StableIndexSort2`(MasterRange`&`&`,Range2`&`&`,Range3`&`&`,const Less`&`): [@(0.0.255) v
oid]_[* StableIndexSort2]([*@4 MasterRange][@(0.0.255) `&`&]_[*@3 r],
[*@4 Range2][@(0.0.255) `&`&]_[*@3 r2], [*@4 Range3][@(0.0.255) `&`&]_[*@3 r3],
[@(0.0.255) const]_[*@4 Less][@(0.0.255) `&]_[*@3 less])&]
@ -147,39 +145,41 @@ of items. Resulting order is determined by the [%-*@3 r ]container.
Ordering is determined by [*/ operator<].&]
[s3; &]
[s4; &]
[s5;:GetSortOrder`(const C`&`,const Less`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 C
], [@(0.0.255) class]_[*@4 Less][@(0.0.255) >]&]
[s5;:GetSortOrder`(const C`&`,const Less`&`): Vector[@(0.0.255) <int>]_[* GetSortOrder]([@(0.0.255) c
onst]_[*@4 C][@(0.0.255) `&]_[*@3 container], [@(0.0.255) const]_[*@4 Less][@(0.0.255) `&]_[*@3 l
ess])&]
[s5;:Upp`:`:GetSortOrder`(const Range`&`,const Less`&`): [@(0.0.255) template]_<[@(0.0.255) c
lass]_[*@4 Range], [@(0.0.255) class]_[*@4 Less]>&]
[s5;:Upp`:`:GetSortOrder`(const Range`&`,const Less`&`): [_^Upp`:`:Vector^ Vector]<[@(0.0.255) i
nt]>_[* GetSortOrder]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r],
[@(0.0.255) const]_[*@4 Less][@(0.0.255) `&]_[*@3 less])&]
[s2;%% Creates ascending order of values in [%-*@3 container]. Ordering
is determined by [%-*@3 less]. The order of elements with the same
value can be changed (unstable sort).&]
[s3; &]
[s4; &]
[s5;:GetSortOrder`(const C`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 C][@(0.0.255) >
]&]
[s5;:GetSortOrder`(const C`&`): Vector[@(0.0.255) <int>]_[* GetSortOrder]([@(0.0.255) const
]_[*@4 C][@(0.0.255) `&]_[*@3 container])&]
[s5;:Upp`:`:GetSortOrder`(const Range`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 R
ange]>&]
[s5;:Upp`:`:GetSortOrder`(const Range`&`): [_^Upp`:`:Vector^ Vector]<[@(0.0.255) int]>_[* G
etSortOrder]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r])&]
[s2;%% Creates ascending order of values in [%-*@3 container]. Ordering
is determined by [*/ operator<]. The order of elements with the
same value can be changed (unstable sort).&]
[s3;%% &]
[s3;%% &]
[s4; &]
[s5;:GetStableSortOrder`(const C`&`,const Less`&`): [@(0.0.255) template]_<[@(0.0.255) cl
ass]_[*@4 C], [@(0.0.255) class]_[*@4 Less]>_[_^Vector^ Vector]<[@(0.0.255) int]>&]
[s5;:GetStableSortOrder`(const C`&`,const Less`&`): [* GetStableSortOrder]([@(0.0.255) co
nst]_[*@4 C][@(0.0.255) `&]_[*@3 container], [@(0.0.255) const]_[*@4 Less][@(0.0.255) `&]_[*@3 l
ess])&]
[s5;:Upp`:`:GetStableSortOrder`(const Range`&`,const Less`&`): [@(0.0.255) template]_<[@(0.0.255) c
lass]_[*@4 Range], [@(0.0.255) class]_[*@4 Less]>&]
[s5;:Upp`:`:GetStableSortOrder`(const Range`&`,const Less`&`): [_^Upp`:`:Vector^ Vector
]<[@(0.0.255) int]>_[* GetStableSortOrder]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r
], [@(0.0.255) const]_[*@4 Less][@(0.0.255) `&]_[*@3 less])&]
[s2;%% Creates ascending order of values in [%-*@3 container]. Ordering
is determined by [%-*@3 less]. The order of elements with the same
value stays unchanged (stable sort).&]
[s3;%% &]
[s3;%% -|&]
[s4; &]
[s5;:GetStableSortOrder`(const C`&`): [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 C]>_[_^Vector^ V
ector]<[@(0.0.255) int]>&]
[s5;:GetStableSortOrder`(const C`&`): [* GetStableSortOrder]([@(0.0.255) const]_[*@4 C][@(0.0.255) `&
]_[*@3 container])&]
[s5;:Upp`:`:GetStableSortOrder`(const Range`&`): [@(0.0.255) template]_<[@(0.0.255) class
]_[*@4 Range]>&]
[s5;:Upp`:`:GetStableSortOrder`(const Range`&`): [_^Upp`:`:Vector^ Vector]<[@(0.0.255) in
t]>_[* GetStableSortOrder]([@(0.0.255) const]_[*@4 Range][@(0.0.255) `&]_[*@3 r])&]
[s2;%% Creates ascending order of values in [%-*@3 container]. Ordering
is determined by [*/ operator<]. The order of elements with the
same value stays unchanged (stable sort).&]