diff --git a/homework/length-sort/sort.cpp b/homework/length-sort/sort.cpp new file mode 100644 index 000000000..03a4aea48 --- /dev/null +++ b/homework/length-sort/sort.cpp @@ -0,0 +1,17 @@ +#include "sort.hpp" + +auto lengthSort(std::forward_list& data) -> std::deque { + std::deque result; + data.sort([](std::string first, std::string second) { + if (first.size() == second.size()) { + return first < second; + } else { + return first.size() < second.size(); + } + }); + + for (auto& str : data) { + result.push_back(str); + } + return result; +} diff --git a/homework/length-sort/sort.hpp b/homework/length-sort/sort.hpp new file mode 100644 index 000000000..6ac3e1a11 --- /dev/null +++ b/homework/length-sort/sort.hpp @@ -0,0 +1,6 @@ +#pragma once +#include +#include +#include + +auto lengthSort(std::forward_list& data) -> std::deque;