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 |
Удар: низко |