[=] (целое с) {вернуться с == '\ п' || с ==»«;}
является лямбда-выражение, которое создает безымянного объект функции. Он вызывается с одним параметром и возвращает логическое значение. Квадратные скобки - это так называемый «лямбда-интродуктор», который содержит так называемый «захват-предложение». Предложение capture указывает компилятору, как объект лямбда захватывает окружающие локальные переменные.
станд :: replace_if (ln.begin(), ln.end(), [=] (целое с) {вернуться с == '\ п' || с ==»«;}, 0);
replace_if принимает два итератора для последовательности, функтор (точнее: предикат) и другое значение. Он выполняет итерацию по элементам последовательности, которая называется ln
, и заменяет каждый элемент 0, если данный предикат (выражение лямбда) возвращает true для этого элемента.
Таким образом, эта строка кода заменяет каждый символ пробела и строки в ln
нулевым терминатором.