Выполнение преобразований в диапазоне
с использованием алгоритма std :: transform()
Алгоритмы s t d : : f o r _ e a c h () и s t d : : tr a n s f o r m () очень похожи в том, что оба они вызывают объект функции для каждого элемента в исходном диапазоне. Однако у алго ритма s t d :: tr a n s f o r m () есть две версии. Первая версия получает унарную функцию и обычно используется для преобразования символов строки в верхний или нижний регистр с использованием функции to u p p e r () или to lo w e r ():
string Sample ("THIS is a TEst string!");
transform ( Sample.begin () // начало исходного диапазона
, Sample.end () // конец исходного диапазона
, strLowerCaseCopy.begin () // начало диапазона назначения
, tolower ); // унарная функция
Вторая версия получает бинарную функцию, позволяющую алгоритму tr a n s f o r m ()
обработать пару элементов, взятых из двух разных диапазонов:
// сложить элементы из двух диапазонов и
|
сохранить результат в третьем
|
transform ( veclntegersl.begin
|
()
|
|
Do'stlaringiz bilan baham: |