1.10. Алгоритмы replace и reverse
Алгоритм replace, упомянутый в таблице раздела 1.9, позволяет нам найти все элементы с определенным значением в заданном контейнере и заменить их другим значением. Следующая программа служит иллюстрацией сказанного:
// replace.срр: Замена элементов последовательности. #include <iostream> #include <string> #include <algorithm> using namespace std;
int main()
{ char str[] = "abcabcabc";
int n = strlen(str);
replace(str, str+n, 'b', 'q');
cout « str << endl;
return 0; }
Программа заменяет все элементы массива str, равные Ъ', на 'q, так что вывод этой программы будет следующим:
aqcaqcaqc
Алгоритм reverse, также упомянутый в таблице из раздела 1.9, позволяет легко заменить последовательность на обратную ей. Согласно этой таблице он требует двунаправленных итераторов, которые, как мы знаем, предоставляют все четыре контейнера. Давайте продемонстрируем этот алгоритм снова с использованием массива.
// reverse.срр: Замена строки на обратную ей. #include <iostream> #include <string> #include <algorithm> using namespace std;
int main()
{ char str[] = "abcklmxyz";
reverse(str, str+strlen(str));
cout « str « endl; // Будет выведено: zyxmlkcba
return 0; }
<< назад вперед >>