На этом шаге мы рассмотрим использование алгорима copy() в качестве фильтра.
В последнем примере алгоритм сору() обеспечивает фильтрацию данных между стандартными входным и выходным потоками. Программа читает строки и выводит их по одной в каждой строке:
//--------------------------------------------------------------------------- #include <vcl.h> #include <iterator> #include "algostuff.hpp" #include <conio.h> //необходимо для getch() #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused using namespace std; std::string ToRus(const std::string &in) { char *buff = new char [in.length()+1]; CharToOem(in.c_str(),buff); std::string out(buff); delete [] buff; return out; } int main() { copy (istream_iterator<string>(cin), // Начало источника istream_iterator<string>(), // Конец источника ostream_iterator<string>(cout,"\n")); // Приемник getch(); return 0; } //---------------------------------------------------------------------------
Результат выполнения программы выглядит так:
Рис.1. Результат работы приложения
На следующем шаге мы рассмотрим преобразование и объединение элементов.