1*3f982cf4SFabien Sanglard // Copyright 2020 The Chromium Authors. All rights reserved. 2*3f982cf4SFabien Sanglard // Use of this source code is governed by a BSD-style license that can be 3*3f982cf4SFabien Sanglard // found in the LICENSE file. 4*3f982cf4SFabien Sanglard 5*3f982cf4SFabien Sanglard #include "util/std_util.h" 6*3f982cf4SFabien Sanglard 7*3f982cf4SFabien Sanglard namespace openscreen { 8*3f982cf4SFabien Sanglard Join(const std::vector<std::string> & strings,const char * delimiter)9*3f982cf4SFabien Sanglardstd::string Join(const std::vector<std::string>& strings, 10*3f982cf4SFabien Sanglard const char* delimiter) { 11*3f982cf4SFabien Sanglard size_t size_to_reserve = 0; 12*3f982cf4SFabien Sanglard for (const auto& piece : strings) { 13*3f982cf4SFabien Sanglard size_to_reserve += piece.length(); 14*3f982cf4SFabien Sanglard } 15*3f982cf4SFabien Sanglard std::string out; 16*3f982cf4SFabien Sanglard out.reserve(size_to_reserve); 17*3f982cf4SFabien Sanglard auto it = strings.begin(); 18*3f982cf4SFabien Sanglard out += *it; 19*3f982cf4SFabien Sanglard for (++it; it != strings.end(); ++it) { 20*3f982cf4SFabien Sanglard out += delimiter + *it; 21*3f982cf4SFabien Sanglard } 22*3f982cf4SFabien Sanglard 23*3f982cf4SFabien Sanglard return out; 24*3f982cf4SFabien Sanglard } 25*3f982cf4SFabien Sanglard 26*3f982cf4SFabien Sanglard } // namespace openscreen 27