diff --git a/include.hh b/include.hh index da618c5..275b489 100644 --- a/include.hh +++ b/include.hh @@ -382,4 +382,12 @@ template istream& operator>>(istream& in, MLL& num) { return in >> num.val; } + +// miscancellous +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} /////////////////////////////////////////////////////////