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

函数式风格的数据流处理容器。 More...

#include <compre.h>

Public Member Functions

 Comprehension ()
 默认构造函数,创建一个空 Comprehension。
template<class Cont>
 Comprehension (const Cont &cont)
 从容器(左值)构造,拷贝所有元素。
template<class Cont>
 Comprehension (Cont &&cont)
 从容器(右值)构造,移动所有元素。
template<class Cont>
 Comprehension (const Cont &cont, size_t start_pos, size_t end_pos)
 从容器的子区间(左值)构造,拷贝指定范围的元素。
template<class Cont>
 Comprehension (Cont &&cont, size_t start_pos, size_t end_pos)
 从容器的子区间(右值)构造,移动指定范围的元素。
template<class Iter>
 Comprehension (Iter beg, Iter end)
 从迭代器对构造,拷贝 [beg, end) 范围内的元素。
 Comprehension (std::initializer_list< T > init)
 从 std::initializer_list 构造。
std::vector< T > & get_vec ()
 获取内部 vector 的引用。
template<class F>
auto map (F &&f) const -> Comprehension< decltype(f(vec[0]))>
 对每个元素应用函数 f,返回新 Comprehension。
template<class F>
Comprehension< T > filter (F &&f) const
 筛选满足谓词 f 的元素,返回新 Comprehension。
template<class Cont>
Cont to ()
 将内部元素移动构造到目标容器 Cont 中。
template<class Cont>
Cont make () const
 将内部元素拷贝构造到目标容器 Cont 中。

Protected Attributes

std::vector< T > vec
 内部存储的 std::vector

Detailed Description

template<class T>
class console::Comprehension< T >

函数式风格的数据流处理容器。

Template Parameters
T容器中元素的类型。

该类包装一个 std::vector<T>,提供 map、filter 等惰性求值风格的操作(实际是立即求值), 并支持从多种来源构造,如容器、迭代器对、初始化列表等。

Note
所有转换操作都会创建新的 Comprehension 对象,不会修改原对象。

Constructor & Destructor Documentation

◆ Comprehension() [1/7]

template<class T>
console::Comprehension< T >::Comprehension ( )
inline

默认构造函数,创建一个空 Comprehension。

◆ Comprehension() [2/7]

template<class T>
template<class Cont>
console::Comprehension< T >::Comprehension ( const Cont & cont)
inline

从容器(左值)构造,拷贝所有元素。

Template Parameters
Cont容器类型,必须支持 std::begin/end。
Parameters
cont源容器(左值)。

◆ Comprehension() [3/7]

template<class T>
template<class Cont>
console::Comprehension< T >::Comprehension ( Cont && cont)
inline

从容器(右值)构造,移动所有元素。

Template Parameters
Cont容器类型,必须支持 std::begin/end。
Parameters
cont源容器(右值)。

◆ Comprehension() [4/7]

template<class T>
template<class Cont>
console::Comprehension< T >::Comprehension ( const Cont & cont,
size_t start_pos,
size_t end_pos )
inline

从容器的子区间(左值)构造,拷贝指定范围的元素。

Template Parameters
Cont容器类型。
Parameters
cont源容器(左值)。
start_pos起始索引(包含)。
end_pos结束索引(不包含)。
Note
区间为 [start_pos, end_pos)。

◆ Comprehension() [5/7]

template<class T>
template<class Cont>
console::Comprehension< T >::Comprehension ( Cont && cont,
size_t start_pos,
size_t end_pos )
inline

从容器的子区间(右值)构造,移动指定范围的元素。

Template Parameters
Cont容器类型。
Parameters
cont源容器(右值)。
start_pos起始索引(包含)。
end_pos结束索引(不包含)。
Note
区间为 [start_pos, end_pos)。

◆ Comprehension() [6/7]

template<class T>
template<class Iter>
console::Comprehension< T >::Comprehension ( Iter beg,
Iter end )
inline

从迭代器对构造,拷贝 [beg, end) 范围内的元素。

Template Parameters
Iter迭代器类型。
Parameters
beg起始迭代器。
end结束迭代器。

◆ Comprehension() [7/7]

template<class T>
console::Comprehension< T >::Comprehension ( std::initializer_list< T > init)
inline

从 std::initializer_list 构造。

Parameters
init初始化列表。

Member Function Documentation

◆ filter()

template<class T>
template<class F>
Comprehension< T > console::Comprehension< T >::filter ( F && f) const
inline

筛选满足谓词 f 的元素,返回新 Comprehension。

Template Parameters
F可调用对象类型,接受 T 并返回 bool。
Parameters
f谓词函数。
Returns
Comprehension<T> 包含满足条件的元素的 Comprehension。

◆ get_vec()

template<class T>
std::vector< T > & console::Comprehension< T >::get_vec ( )
inline

获取内部 vector 的引用。

Returns
std::vector<T>& 内部 vector 的引用。

◆ make()

template<class T>
template<class Cont>
Cont console::Comprehension< T >::make ( ) const
inline

将内部元素拷贝构造到目标容器 Cont 中。

Template Parameters
Cont目标容器类型,必须支持从迭代器构造。
Returns
Cont 构造完成的目标容器。
Note
不修改当前 Comprehension。

◆ map()

template<class T>
template<class F>
auto console::Comprehension< T >::map ( F && f) const -> Comprehension< decltype(f(vec[0]))>
inline

对每个元素应用函数 f,返回新 Comprehension。

Template Parameters
F可调用对象类型,接受 T 并返回某个类型 U。
Parameters
f映射函数。
Returns
Comprehension<decltype(f(vec[0]))> 包含映射结果的 Comprehension。
Note
该操作立即求值,生成新容器。

◆ to()

template<class T>
template<class Cont>
Cont console::Comprehension< T >::to ( )
inline

将内部元素移动构造到目标容器 Cont 中。

Template Parameters
Cont目标容器类型,必须支持从移动迭代器构造。
Returns
Cont 构造完成的目标容器。
Note
调用后当前 Comprehension 仍有效但内部元素已被移走。

Member Data Documentation

◆ vec

template<class T>
std::vector<T> console::Comprehension< T >::vec
protected

内部存储的 std::vector


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