feat(kernel/std): add std::sort implementations

This commit is contained in:
EnderIce2 2025-04-07 06:32:25 +00:00
parent 832833a56f
commit d8cd27196d
Signed by: enderice2
GPG Key ID: FEB6B8A8507BA62E

View File

@ -324,4 +324,42 @@ namespace std
}
return true;
}
template <class RandomIt>
constexpr void sort(RandomIt first, RandomIt last)
{
if (first == last)
return;
for (RandomIt i = first; i != last; ++i)
{
for (RandomIt j = i + 1; j != last; ++j)
{
if (*j < *i)
std::swap(*i, *j);
}
}
}
template <class ExecutionPolicy, class RandomIt>
void sort(ExecutionPolicy &&policy, RandomIt first, RandomIt last);
template <class RandomIt, class Compare>
constexpr void sort(RandomIt first, RandomIt last, Compare comp)
{
if (first == last)
return;
for (RandomIt i = first; i != last; ++i)
{
for (RandomIt j = i + 1; j != last; ++j)
{
if (comp(*j, *i))
std::swap(*i, *j);
}
}
}
template <class ExecutionPolicy, class RandomIt, class Compare>
void sort(ExecutionPolicy &&policy, RandomIt first, RandomIt last, Compare comp);
}