join.h 490 B

1234567891011121314151617181920212223242526272829
  1. //
  2. // join.h
  3. // string-utils
  4. //
  5. // Created by Sam Jaffe on 6/18/22.
  6. // Copyright © 2022 Sam Jaffe. All rights reserved.
  7. //
  8. #pragma once
  9. #include <sstream>
  10. #include <string>
  11. namespace string_utils {
  12. template <typename C>
  13. std::string join(C const & container, std::string_view token) {
  14. if (container.empty()) { return ""; }
  15. std::stringstream ss;
  16. auto it = container.begin();
  17. ss << *it;
  18. while (++it != container.end()) {
  19. ss << token << *it;
  20. }
  21. return ss.str();
  22. }
  23. }