std::string operator+()
instead of
a simple appendНе являющиеся членами std::string operator+()
функция вызывается при добавлении (или +=
) метод был бы более эффективным
Этот дефект возникает, когда вы добавляете к строке с помощью функции, не являющейся членом std::string operator+()
, для образца:
std::string s1; s1 = s1 + "Other";
Операция:
s1 = s1 + "Other";
std::string operator+()
для конкатенации строки с правой стороны задания. Функция возвращает временную строку, которая затем назначается s1
.Прямой вызов функции представителя operator+=()
избегает создания этой временной строки и является более эффективным.
Чтобы добавить к строке, используйте функцию представителя operator+=()
, для образца:
std::string s1; s1 += "Other";
append
, для образца:std::string s1; s1.append("Other");
Эффективность улучшения могут варьироваться в зависимости от используемого компилятора, реализации библиотеки и окружения.
Группа: Эффективность |
Язык: C++ |
По умолчанию: Off |
Синтаксис командной строки
: EXPENSIVE_STD_STRING_APPEND |
Влияние: Низкое |