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

计数器生成器,生成递增或递减的序列。 More...

#include <gen.h>

Inheritance diagram for console::gen::Counter< T >:
console::Generator< Counter< T >, T >

Public Member Functions

 Counter (T start=T{0}, T step=T{1}, size_t times=size_t(-1))
 构造函数,创建有限计数器。
bool done ()
 检查生成器是否已完成。
T current ()
 获取当前值。
void advance ()
 向前移动一步。
Public Member Functions inherited from console::Generator< Counter< T >, T >
iterator iter () const
 获取生成器的迭代器对象。
iterator begin () const
 获取开始迭代器。
iterator end () const
 获取结束迭代器。
bool done ()
 检查生成器是否已完成。
T current ()
 获取当前值。
void advance ()
 推进生成器到下一个位置。

Private Attributes

T curr
T step
size_t max_count
size_t count

Additional Inherited Members

Public Types inherited from console::Generator< Counter< T >, T >
typedef T value_type
 生成器产生的值类型。

Detailed Description

template<class T>
class console::gen::Counter< T >

计数器生成器,生成递增或递减的序列。

Constructor & Destructor Documentation

◆ Counter()

template<class T>
console::gen::Counter< T >::Counter ( T start = T{0},
T step = T{1},
size_t times = size_t(-1) )
inline

构造函数,创建有限计数器。

Parameters
start起始值,默认为0。
step步长,默认为1。
times输出次数,默认为无限。

Member Function Documentation

◆ advance()

template<class T>
void console::gen::Counter< T >::advance ( )
inline

向前移动一步。

Note
该函数会更新当前计数值和已输出次数。

◆ current()

template<class T>
T console::gen::Counter< T >::current ( )
inline

获取当前值。

Returns
当前计数值。

◆ done()

template<class T>
bool console::gen::Counter< T >::done ( )
inline

检查生成器是否已完成。

Returns
如果已达到最大计数则返回true。
Note
无限计数器永远返回false。

Member Data Documentation

◆ count

template<class T>
size_t console::gen::Counter< T >::count
private

◆ curr

template<class T>
T console::gen::Counter< T >::curr
private

◆ max_count

template<class T>
size_t console::gen::Counter< T >::max_count
private

◆ step

template<class T>
T console::gen::Counter< T >::step
private

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