![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
TutorialBoost , ,Tutorial2.2.1. Overview: InputFilters, OutputFilters and Filter HelpersФильтры используются для изменения последовательностей символов. Например, вы можете использовать фильтр для замены всех экземпляров одного слова другим, для преобразования всех алфавитных символов в нижний регистр или для шифрования документа. Иногда фильтр является просто наблюдателем; в этом случае фильтрованная последовательность символов такая же, как и нефильтрованная последовательность. Например, вы можете использовать фильтр для подсчета количества происшествий данного слова. InputFilters and OutputFiltersБиблиотека Iostreams поддерживает две основные категории фильтров:иФильтры. Входные фильтры представляют собой модель фильтрации “pull”: источник нефильтрованных данных предоставляется — представлен какИсточник— и ожидается, что фильтр генерирует определенное количество символов фильтрованной последовательности. Отфильтрованная последовательность генерируется постепенно, что означает, что для фильтрации заданной последовательности символов фильтр обычно должен вызываться несколько раз.Фильтрыпредставляют собой модель фильтрации “push”: предусмотрена последовательность нефильтрованных символов иSink, и ожидается, что фильтр фильтрует символы и записывает их в Sink. Как и InputFilters, OutputFilters также обрабатывает данные постепенно. Простейшие InputFilters и OutputFilters обрабатывают символы по одному. Этот тип фильтра прост в написании, но менее эффективен, чем фильтры, которые обрабатывают несколько символов одновременно. Фильтры, которые обрабатывают несколько символов одновременно, называются фильтрамис несколькими символами. Filter HelpersБиблиотека Iostreams предоставляет несколько утилит, облегчающих написание фильтров:
Selecting a Filter ConceptПредположим, вам нужно написать фильтр для выполнения заданной задачи фильтрации. Как вы решаете, писать лиInputFilterилиOutputFilter, или использовать одного из помощников фильтра? Первые два фильтра, упомянутые выше,< Во всех, кроме последнего из приведенных ниже примеров фильтрации, я сначала покажу, как реализовать алгоритм с использованием< © Copyright 2008 CodeRage, LLC Use, modification, and distribution are subject to the Boost Software License, Version 2.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) Статья Tutorial раздела может быть полезна для разработчиков на c++ и boost. Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |