forked from suyu/suyu
string_util: Remove unnecessary std::string instance in TabsToSpaces()
We can just use the variant of std::string's replace() function that can replace an occurrence with N copies of the same character, eliminating the need to allocate a std::string containing a buffer of spaces.
This commit is contained in:
parent
c994cdc532
commit
cd46b267f5
2 changed files with 7 additions and 8 deletions
|
@ -168,15 +168,14 @@ void SplitString(const std::string& str, const char delim, std::vector<std::stri
|
||||||
output.pop_back();
|
output.pop_back();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string TabsToSpaces(int tab_size, const std::string& in) {
|
std::string TabsToSpaces(int tab_size, std::string in) {
|
||||||
const std::string spaces(tab_size, ' ');
|
|
||||||
std::string out(in);
|
|
||||||
|
|
||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
while (out.npos != (i = out.find('\t')))
|
|
||||||
out.replace(i, 1, spaces);
|
|
||||||
|
|
||||||
return out;
|
while ((i = in.find('\t')) != std::string::npos) {
|
||||||
|
in.replace(i, 1, tab_size, ' ');
|
||||||
|
}
|
||||||
|
|
||||||
|
return in;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string ReplaceAll(std::string result, const std::string& src, const std::string& dest) {
|
std::string ReplaceAll(std::string result, const std::string& src, const std::string& dest) {
|
||||||
|
|
|
@ -57,7 +57,7 @@ static bool TryParse(const std::string& str, N* const output) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string TabsToSpaces(int tab_size, const std::string& in);
|
std::string TabsToSpaces(int tab_size, std::string in);
|
||||||
|
|
||||||
void SplitString(const std::string& str, char delim, std::vector<std::string>& output);
|
void SplitString(const std::string& str, char delim, std::vector<std::string>& output);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue