YSTest: Non-modifying Sequence Operations

YSTest PreAlpha_b800_20170810 The YSLib Test Project

- 首页
- 相关页面
- 模块
- 命名空间
- 类
- 文件

模块 | 命名空间 | 函数
Non-modifying Sequence Operations
Gerneral Algorithms

非修改序列操作。 更多...

Non-modifying Sequence Operations 的协作图:

## 模块

| null-terminated character string utilities
| 简单 NTCTS 操作。

## 命名空间

| ystdex::cpp2014
| 包含 ISO C++ 2014 引入的名称的命名空间。

## 函数

template<typename _tIn , typename _fPred >
bool | ystdex::fast_all_of (_tIn first, _tIn last, _fPred pred)
| 快速序列判断操作。 更多...
template<typename _tIn , typename _fPred >
bool | ystdex::fast_any_of (_tIn first, _tIn last, _fPred pred)
template<typename _tIn , typename _fPred >
bool | ystdex::fast_none_of (_tIn first, _tIn last, _fPred pred)
template<typename _tIn , typename _fPred >
bool | ystdex::strict_all_of (_tIn first, _tIn last, _fPred pred)
| 严格序列判断操作。 更多...
template<typename _tIn , typename _fPred >
bool | ystdex::strict_any_of (_tIn first, _tIn last, _fPred pred)
template<typename _tIn , typename _fPred >
bool | ystdex::strict_none_of (_tIn first, _tIn last, _fPred pred)
template<typename _tIn , typename _func , typename _type >
_func | ystdex::for_each_equal (_tIn first, _tIn last, const _type &value, _func f)
template<typename _tIn , typename _func , typename _fPred >
_func | ystdex::for_each_if (_tIn first, _tIn last, _fPred pred, _func f)
template<typename _fPred , typename _fInsert , typename _tIn >
void | ystdex::split (_tIn b, _tIn e, _fPred is_delim, _fInsert insert)
| 以指定分隔符分割序列。 更多...
template<typename _fPred , typename _fInsert , typename _func , typename _tIn >
void | ystdex::split_if (_tIn b, _tIn e, _fPred is_delim, _fInsert insert, _func pred)
| 以满足迭代器谓词的指定分隔符分割序列。 更多...
template<typename _fPred , typename _fInsert , typename _tIn >
_tIn | ystdex::split_l (_tIn b, _tIn e, _fPred is_delim, _fInsert insert)
| 以指定分隔符分割保留起始分隔符的序列。 更多...

## 详细描述

非修改序列操作。

参见
  WG21 N3936 25.2[alg.nonmodifying] 。

自从
  build 531

## 函数说明

template<typename _tIn , typename _fPred >

bool ystdex::fast_all_of | ( | _tIn | first,
|  | _tIn | last,
|  | _fPred | pred
| ) |  |

快速序列判断操作。

注解
  保证从序列起始判断，尽早确定返回值，保证若干个值被判断一次，之后的值不被判断。

自从
  build 675

注解
  若返回值，同 std::all_of 的返回结果。

在文件 algorithm.hpp 第 65 行定义.

template<typename _tIn , typename _fPred >

bool ystdex::fast_any_of | ( | _tIn | first,
|  | _tIn | last,
|  | _fPred | pred
| ) |  |

注解
  若返回值，同 std::any_of 的返回结果。

在文件 algorithm.hpp 第 75 行定义.

参考自 ystdex::fast_none_of() , 以及 NPL::PassesCombiner::operator()().

这是这个函数的调用关系图:
template<typename _tIn , typename _fPred >

bool ystdex::fast_none_of | ( | _tIn | first,
|  | _tIn | last,
|  | _fPred | pred
| ) |  |

注解
  若返回值，同 std::none_of 的返回结果。

在文件 algorithm.hpp 第 85 行定义.

参考 ystdex::fast_any_of().

函数调用图:
template<typename _tIn , typename _func , typename _type >

_func ystdex::for_each_equal | ( | _tIn | first,
|  | _tIn | last,
|  | const _type & | value,
|  | _func | f
| ) |  |

模板参数

  _func | 用于遍历范围的操作的可调用类型。

参数

  first | 输入范围起始迭代器。
  last | 输入范围终止迭代器。
  f | 遍历操作。

前置条件
  _func 满足 MoveConstructible 要求。
  _type 满足 EqualityComparable 要求。

返回
  转移的 f 。

注解
  时间复杂度： 不大于 `last - first` 次 `f` 的调用。

参见
  WG21 N3936 25.2.4[alg.foreach] 。
  其它参考实现： http://stackoverflow.com/questions/234482/using-stl-to-find-all-elements-in-a-vector 。

分别应用操作至范围 `[first, last)` 内的解应用的迭代器 `i` 满足以下条件：

- `*i == value`
- `pred(*i) != false`

在文件 algorithm.hpp 第 149 行定义.

参考 CHRLib::f().

函数调用图:
template<typename _tIn , typename _func , typename _fPred >

_func ystdex::for_each_if | ( | _tIn | first,
|  | _tIn | last,
|  | _fPred | pred,
|  | _func | f
| ) |  |

在文件 algorithm.hpp 第 161 行定义.

参考 CHRLib::f().

参考自 YSLib::ValueNode::SelectChildren() , 以及 YSLib::ValueNode::SplitChildren().

函数调用图:

这是这个函数的调用关系图:
template<typename _fPred , typename _fInsert , typename _tIn >

void ystdex::split | ( | _tIn | b,
|  | _tIn | e,
|  | _fPred | is_delim,
|  | _fInsert | insert
| ) |  |

以指定分隔符分割序列。

注解
  只保留非空结果，不保留分隔符。

自从
  build 304

在文件 algorithm.hpp 第 215 行定义.

参考 YSLib::i.

参考自 YReader::ShlReader::LoadBookmarks().

这是这个函数的调用关系图:
template<typename _fPred , typename _fInsert , typename _func , typename _tIn >

void ystdex::split_if | ( | _tIn | b,
|  | _tIn | e,
|  | _fPred | is_delim,
|  | _fInsert | insert,
|  | _func | pred
| ) |  |

以满足迭代器谓词的指定分隔符分割序列。

自从
  build 668

在文件 algorithm.hpp 第 235 行定义.

参考 CHRLib::e , 以及 YSLib::i.

template<typename _fPred , typename _fInsert , typename _tIn >

_tIn ystdex::split_l | ( | _tIn | b,
|  | _tIn | e,
|  | _fPred | is_delim,
|  | _fInsert | insert
| ) |  |

以指定分隔符分割保留起始分隔符的序列。

注解
  除非无法匹配，保留起始分隔符。

自从
  build 408

在文件 algorithm.hpp 第 263 行定义.

参考 YSLib::i.

参考自 NPL::Decompose().

这是这个函数的调用关系图:
template<typename _tIn , typename _fPred >

bool ystdex::strict_all_of | ( | _tIn | first,
|  | _tIn | last,
|  | _fPred | pred
| ) |  |

严格序列判断操作。

注解
  保证从序列起始判断，返回时序列中的每个值被判断一次。

自从
  build 675

注解
  若返回值，同 std::all_of 的返回结果。

在文件 algorithm.hpp 第 101 行定义.

参考 platform::bool , 以及 yforward.

template<typename _tIn , typename _fPred >

bool ystdex::strict_any_of | ( | _tIn | first,
|  | _tIn | last,
|  | _fPred | pred
| ) |  |

注解
  若返回值，同 std::any_of 的返回结果。

在文件 algorithm.hpp 第 112 行定义.

参考 platform::bool , 以及 yforward.

参考自 ystdex::strict_none_of().

这是这个函数的调用关系图:
template<typename _tIn , typename _fPred >

bool ystdex::strict_none_of | ( | _tIn | first,
|  | _tIn | last,
|  | _fPred | pred
| ) |  |

注解
  若返回值，同 std::none_of 的返回结果。

在文件 algorithm.hpp 第 123 行定义.

参考 ystdex::strict_any_of().

函数调用图: