From a335b71abe2030eb654c6930faf5ae374834e56f Mon Sep 17 00:00:00 2001 From: Dennis Oberst Date: Thu, 27 Mar 2025 19:16:12 +0100 Subject: [PATCH] tools [utils]: directly emplace substrings into vector for split() Saves a temporary. Change-Id: I6851e6f941dfa593fb37f79a7ec19ce446753556 Pick-to: 6.9 6.8 Reviewed-by: Alexey Edelev --- src/tools/qtprotoccommon/utils.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/tools/qtprotoccommon/utils.cpp b/src/tools/qtprotoccommon/utils.cpp index 7f788b27..ce7d730b 100644 --- a/src/tools/qtprotoccommon/utils.cpp +++ b/src/tools/qtprotoccommon/utils.cpp @@ -32,16 +32,15 @@ std::vector split(std::string_view s, std::string_view c, bool keep assert(!c.empty()); std::vector out; std::string::size_type pos = 0; - std::string item; for (std::string::size_type posNext = 0; (posNext = s.find(c, pos)) != std::string::npos; pos = posNext + c.size()) { - item = s.substr(pos, posNext - pos); + auto item = s.substr(pos, posNext - pos); if (keepEmpty || !item.empty()) - out.push_back(item); + out.emplace_back(item); } - item = s.substr(pos); + auto item = s.substr(pos); if (keepEmpty || !item.empty()) - out.push_back(item); + out.emplace_back(item); return out; }