diff --git a/.common/cpp/skeleton.cpp b/.common/cpp/skeleton.cpp index 87b3b8d..5f057a1 100644 --- a/.common/cpp/skeleton.cpp +++ b/.common/cpp/skeleton.cpp @@ -131,17 +131,22 @@ decltype(auto) y_combinator(Fun &&fun) { #pragma endregion /* functional */ #pragma region input -template -std::vector load_vector(std::size_t size) { - std::vector result{}; +template +void collect(Container &c, std::size_t size) { + auto it = std::inserter(c, c.begin()); for (auto i = 0u; i < size; ++i) { - T x; + typename Container::value_type x; std::cin >> x; - result.push_back(std::move(x)); + it = std::move(x); } +} - return result; +template +Container collect(std::size_t size) { + Container c{}; + collect(c, size); + return c; } #pragma endregion /* input */