std::vector<T> head(const std::vector<T>& sv, size_t n) { if (n != 0) validate_std_vector_index(sv, n, "head"); std::vector<T> s; for (int i = 0; i < n; ++i) s.push_back(sv[i]); return s; }
std::vector<T> tail(const std::vector<T>& sv, size_t n) { if (n != 0) validate_std_vector_index(sv, sv.size() - n + 1, "tail"); std::vector<T> s; for (int i = sv.size() - n; i < sv.size(); ++i) s.push_back(sv[i]); return s; }