NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
generator< T > 模板类 参考

懒序列生成器 更多...

#include <generator.hpp>

struct  promise_type
 生成器的promise类型 更多...
class  iterator
 生成器的输入迭代器 更多...

Public 成员函数

 generator (coroutine_handle< promise_type > h)
 从协程句柄构造
 generator (generator &&other) noexcept
 移动构造函数
generatoroperator= (generator &&other) noexcept
 移动赋值运算符
 ~generator ()
 析构函数,销毁协程
iterator begin ()
 获取起始迭代器
iterator end ()
 获取结束迭代器
template<typename F>
invoke_result_t< F, T > map (F &&func)
 映射变换
template<typename Pred>
generator filter (Pred &&pred)
 过滤
generator take (const size_t n)
 取前n个元素
generator skip (const size_t n)
 跳过前n个元素
generator chain (generator &&other)
 连接两个生成器
template<typename F>
void for_each (F &&func)
 遍历每个元素
template<typename Acc, typename F>
Acc fold (Acc init, F &&func)
 折叠(归约)

详细描述

template<typename T>
class generator< T >

懒序列生成器

模板参数
T元素类型

使用协程实现的懒序列生成器,支持范围for循环和组合操作。 每次co_yield产生一个值,协程暂停直到下一次迭代。

在文件 generator.hpp157 行定义.

构造及析构函数说明

◆ generator() [1/2]

template<typename T>
generator< T >::generator ( coroutine_handle< promise_type > h)
inlineexplicit

从协程句柄构造

参数
h协程句柄

在文件 generator.hpp286 行定义.

被这些函数引用 chain(), filter(), generator(), generator< T >::promise_type::get_return_object(), operator=(), skip() , 以及 take().

◆ generator() [2/2]

template<typename T>
generator< T >::generator ( generator< T > && other)
inlinenoexcept

移动构造函数

参数
other被移动的对象

在文件 generator.hpp293 行定义.

引用了 generator().

成员函数说明

◆ begin()

template<typename T>
iterator generator< T >::begin ( )
inline

获取起始迭代器

返回
起始迭代器

在文件 generator.hpp333 行定义.

引用了 rethrow_exception().

◆ chain()

template<typename T>
generator generator< T >::chain ( generator< T > && other)
inline

连接两个生成器

参数
other另一个生成器
返回
连接后的生成器

在文件 generator.hpp417 行定义.

引用了 forward() , 以及 generator().

◆ end()

template<typename T>
iterator generator< T >::end ( )
inline

获取结束迭代器

返回
结束迭代器

在文件 generator.hpp350 行定义.

◆ filter()

template<typename T>
template<typename Pred>
generator generator< T >::filter ( Pred && pred)
inline

过滤

模板参数
Pred谓词类型
参数
pred谓词
返回
过滤后的生成器

在文件 generator.hpp372 行定义.

引用了 forward() , 以及 generator().

◆ fold()

template<typename T>
template<typename Acc, typename F>
Acc generator< T >::fold ( Acc init,
F && func )
inline

折叠(归约)

模板参数
Acc累加器类型
F函数类型
参数
init初始值
func折叠函数
返回
折叠结果

在文件 generator.hpp447 行定义.

引用了 forward() , 以及 move().

◆ for_each()

template<typename T>
template<typename F>
void generator< T >::for_each ( F && func)
inline

遍历每个元素

模板参数
F函数类型
参数
func要对每个元素执行的函数

在文件 generator.hpp432 行定义.

引用了 forward().

◆ map()

template<typename T>
template<typename F>
invoke_result_t< F, T > generator< T >::map ( F && func)
inline

映射变换

模板参数
F函数类型
参数
func变换函数
返回
变换后的生成器

在文件 generator.hpp359 行定义.

引用了 forward().

◆ operator=()

template<typename T>
generator & generator< T >::operator= ( generator< T > && other)
inlinenoexcept

移动赋值运算符

参数
other被移动的对象
返回
自身引用

在文件 generator.hpp303 行定义.

引用了 addressof() , 以及 generator().

◆ skip()

template<typename T>
generator generator< T >::skip ( const size_t n)
inline

跳过前n个元素

参数
n要跳过的个数
返回
新的生成器

在文件 generator.hpp401 行定义.

引用了 count(), forward() , 以及 generator().

◆ take()

template<typename T>
generator generator< T >::take ( const size_t n)
inline

取前n个元素

参数
n元素个数
返回
新的生成器

在文件 generator.hpp385 行定义.

引用了 count(), forward() , 以及 generator().


该类的文档由以下文件生成: