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

滑动窗口生成器,生成固定大小的滑动窗口。 More...

#include <gextra.h>

Inheritance diagram for console::gen::Window< Gen >:
console::Generator< Window< Gen >, std::vector< Gen::value_type > >

Public Member Functions

 Window (Gen gen, size_t window_size=16)
 构造函数。
bool done ()
 检查生成器是否已完成。
std::vector< typename Gen::value_type > current ()
 获取当前窗口内容。
void advance ()
 向前移动一步,滑动窗口。
Public Member Functions inherited from console::Generator< Window< Gen >, std::vector< Gen::value_type > >
iterator iter () const
 获取生成器的迭代器对象。
iterator begin () const
 获取开始迭代器。
iterator end () const
 获取结束迭代器。
bool done ()
 检查生成器是否已完成。
std::vector< Gen::value_type > current ()
 获取当前值。
void advance ()
 推进生成器到下一个位置。

Private Member Functions

void init ()

Private Attributes

Gen gen_
size_t window_size_
std::vector< typename Gen::value_type > window_
bool started = false

Additional Inherited Members

Public Types inherited from console::Generator< Window< Gen >, std::vector< Gen::value_type > >
typedef std::vector< Gen::value_type > value_type
 生成器产生的值类型。

Detailed Description

template<class Gen>
class console::gen::Window< Gen >

滑动窗口生成器,生成固定大小的滑动窗口。

Template Parameters
Gen源生成器类型。

Constructor & Destructor Documentation

◆ Window()

template<class Gen>
console::gen::Window< Gen >::Window ( Gen gen,
size_t window_size = 16 )
inlineexplicit

构造函数。

Parameters
gen源生成器。
window_size窗口大小,默认为16。
Exceptions
ValueError如果窗口大小为0。

Member Function Documentation

◆ advance()

template<class Gen>
void console::gen::Window< Gen >::advance ( )
inline

向前移动一步,滑动窗口。

◆ current()

template<class Gen>
std::vector< typename Gen::value_type > console::gen::Window< Gen >::current ( )
inline

获取当前窗口内容。

Returns
包含窗口元素的向量。

◆ done()

template<class Gen>
bool console::gen::Window< Gen >::done ( )
inline

检查生成器是否已完成。

Returns
如果窗口大小不足则返回true。

◆ init()

template<class Gen>
void console::gen::Window< Gen >::init ( )
inlineprivate

Member Data Documentation

◆ gen_

template<class Gen>
Gen console::gen::Window< Gen >::gen_
private

◆ started

template<class Gen>
bool console::gen::Window< Gen >::started = false
private

◆ window_

template<class Gen>
std::vector<typename Gen::value_type> console::gen::Window< Gen >::window_
private

◆ window_size_

template<class Gen>
size_t console::gen::Window< Gen >::window_size_
private

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