Console Library 8.0.0
A header-only library that makes C++ simple
Loading...
Searching...
No Matches
console::gen::Filter< Gen, Pred > Class Template Reference

过滤生成器,只保留满足谓词的元素。 More...

#include <gen.h>

Inheritance diagram for console::gen::Filter< Gen, Pred >:
console::Generator< Filter< Gen, Pred >, Gen::iterator::value_type >

Public Member Functions

 Filter (Gen g, Pred p)
 构造函数。
bool done ()
 检查生成器是否已完成。
auto current () -> decltype(gen.current())
 获取当前值。
void advance ()
 向前移动一步。
Public Member Functions inherited from console::Generator< Filter< Gen, Pred >, Gen::iterator::value_type >
iterator iter () const
 获取生成器的迭代器对象。
iterator begin () const
 获取开始迭代器。
iterator end () const
 获取结束迭代器。
bool done ()
 检查生成器是否已完成。
Gen::iterator::value_type current ()
 获取当前值。
void advance ()
 推进生成器到下一个位置。

Private Member Functions

void find_next ()
 查找下一个满足谓词的元素。

Private Attributes

Gen gen
Pred pred
bool valid
bool initialized

Additional Inherited Members

Public Types inherited from console::Generator< Filter< Gen, Pred >, Gen::iterator::value_type >
typedef Gen::iterator::value_type value_type
 生成器产生的值类型。

Detailed Description

template<class Gen, class Pred>
class console::gen::Filter< Gen, Pred >

过滤生成器,只保留满足谓词的元素。

Template Parameters
Gen源生成器类型。
Pred谓词函数类型。

Constructor & Destructor Documentation

◆ Filter()

template<class Gen, class Pred>
console::gen::Filter< Gen, Pred >::Filter ( Gen g,
Pred p )
inline

构造函数。

Parameters
g源生成器。
p谓词函数。

Member Function Documentation

◆ advance()

template<class Gen, class Pred>
void console::gen::Filter< Gen, Pred >::advance ( )
inline

向前移动一步。

◆ current()

template<class Gen, class Pred>
auto console::gen::Filter< Gen, Pred >::current ( ) -> decltype(gen.current())
inline

获取当前值。

Returns
当前满足谓词的值。

◆ done()

template<class Gen, class Pred>
bool console::gen::Filter< Gen, Pred >::done ( )
inline

检查生成器是否已完成。

Returns
如果源生成器已完成则返回true。

◆ find_next()

template<class Gen, class Pred>
void console::gen::Filter< Gen, Pred >::find_next ( )
inlineprivate

查找下一个满足谓词的元素。

Member Data Documentation

◆ gen

template<class Gen, class Pred>
Gen console::gen::Filter< Gen, Pred >::gen
private

◆ initialized

template<class Gen, class Pred>
bool console::gen::Filter< Gen, Pred >::initialized
private

◆ pred

template<class Gen, class Pred>
Pred console::gen::Filter< Gen, Pred >::pred
private

◆ valid

template<class Gen, class Pred>
bool console::gen::Filter< Gen, Pred >::valid
private

The documentation for this class was generated from the following file: