Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Generator Iterator Adaptor Documentation

Boost , ,

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

boost.png (6897 bytes)

Generator Iterator Adaptor

Заголовокboost/generator_iterator.hpp

Адаптер итератора генератора облегчает создание пользовательских итераторов ввода из 0-арных функций и функциональных объектов. Адаптер принимаетГенератори создает модельИтератор ввода. Каждое приращение извлекает элемент из генератора и делает его доступным для извлечения путем отсчета. Мотивация этого итератора заключается в том, что некоторые концепции могут быть более естественно выражены как генератор, в то время как большинство алгоритмов STL ожидают итератора. Примером может служить библиотекаСлучайное число.

Synopsis

namespace boost {
  template <class Generator>
  class generator_iterator_policies;
  template <class Generator>
  class generator_iterator_generator;
  template <class Generator>
  typename generator_iterator_generator<Generator>::type
  make_generator_iterator(Generator & gen);
}

The Generator Iterator Generator Class

Генератор класса_iterator_generator - класс помощника, целью которого является создание итератора типа генератора. Параметром шаблона для этого класса является тип объекта функции генератора, который обертывается. Адаптер итератора генератора содержит только ссылку (или указатель) на объект функции, поэтому объект функции должен пережить адаптер итератора генератора, построенный из него.

template <class Generator>
class generator_iterator_generator
{
public:
  typedef unspecified type; // the resulting generator iterator type 
}

Template Parameters

Parameter Description
Генератор Обертывается тип генератора (0-ary function object). Тип возврата функции должен быть определен какГенератор::result_type. Объект функции должен быть модельюГенератора.

Concept Model

Класс генераторного итератора представляет собой модельInput Iterator.

Members

Итератор генератора реализует функции и операторы, требуемые концепциейИтератор ввода.


The Generator Iterator Object Generator

Функцияmake_generator_iterator()обеспечивает удобный способ создания объектов итератора генератора. Функция избавляет пользователя от проблемы явного написания типов итератора.

template <class Generator>
typename generator_iterator_generator<Generator>::type
make_generator_iterator(Generator & gen);

Example

Следующая программа показывает, как<generator_iterator>преобразует генератор во входной итератор.

#include <iostream>
#include <boost/generator_iterator.hpp>
class my_generator
{
public:
  typedef int result_type;
  my_generator() : state(0) { }
  int operator()() { return ++state; }
private:
  int state;
};
int main()
{
  my_generator gen;
  boost::generator_iterator_generator<my_generator>::type it = boost::make_generator_iterator(gen);
  for(int i = 0; i < 10; ++i, ++it)
    std::cout << *it << std::endl;
}

Valid HTML 4.01 Transitional

Пересмотрено05 Декабря 200605 December, 2006[ORIG_END] -->

Авторское право и копия; 2001Йенс Маурер

Распространяется под лицензией Boost Software License, версия 1.0. (См. сопроводительный файлLICENSE_1_0.txtили копию в) http://www.boost.org/LICENSE_1_0.txt

Статья Generator Iterator Adaptor Documentation раздела может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 13:09:30/0.0034890174865723/0