Sfoglia il codice sorgente

string_util: Use emplace_back() in SplitString() instead of push_back()

This is equivalent to doing:

push_back(std::string(""));

which is likely not to cause issues, assuming a decent std::string
implementation with small-string optimizations implemented in its
design, however it's still a little unnecessary to copy that buffer
regardless. Instead, we can use emplace_back() to directly construct the
empty string within the std::vector instance, eliminating any possible
overhead from the copy.
Lioncash 8 anni fa
parent
commit
26a157cd31
1 ha cambiato i file con 3 aggiunte e 2 eliminazioni
  1. 3 2
      src/common/string_util.cpp

+ 3 - 2
src/common/string_util.cpp

@@ -162,8 +162,9 @@ void SplitString(const std::string& str, const char delim, std::vector<std::stri
     std::istringstream iss(str);
     output.resize(1);
 
-    while (std::getline(iss, *output.rbegin(), delim))
-        output.push_back("");
+    while (std::getline(iss, *output.rbegin(), delim)) {
+        output.emplace_back();
+    }
 
     output.pop_back();
 }