YSTest: Gerneral Algorithms

YSTest PreAlpha_b700_20160611 The YSLib Test Project

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

模块 | 函数
Gerneral Algorithms

算法。 更多...

Gerneral Algorithms 的协作图:

## 模块

| Non-modifying Sequence Operations
| 非修改序列操作。
| Mutating Sequence Operations
| 可变序列操作。
| Sorting and Related Operations
| 排序相关操作。

## 函数

template<typename _type >
size_t | ystdex::string_length (const _type *str)
| 计算字符串长度。 更多...
template<typename _type >
auto | ystdex::string_length (const _type &str) -> decltype(size(str))
template<typename _tElem >
size_t | ystdex::string_length (std::initializer_list< _tElem > il)
template<typename _tRange >
auto | ystdex::range_size (const _tRange &c) -> decltype(details::range_size(c, details::has_range_size< _tRange >()))
| 取范围大小。 更多...
template<typename _tElem >
size_t | ystdex::range_size (std::initializer_list< _tElem > il)
template<class _tCon , typename _tKey >
bool | ystdex::exists (const _tCon &con, const _tKey &key)
| 判断指定的容器中存在指定的键。 更多...
template<typename _tCon , typename _tIter >
void | ystdex::erase_all (_tCon &con, _tIter first, _tIter last)
| 删除指定容器中指定区间中的或全部元素。 更多...
template<typename _tCon , typename _tIter , typename _type >
void | ystdex::erase_all (_tCon &con, _tIter first, _tIter last, const _type &value)
template<typename _tCon , typename _type >
void | ystdex::erase_all (_tCon &con, const _type &value)
template<typename _tRange1 , typename _tRange2 , typename _fPred >
bool | ystdex::begins_with (const _tRange1 &input, const _tRange2 &test, _fPred comp)
| 判断第一个参数指定的串是否以第二个参数起始。 更多...
template<typename _tRange1 , typename _tRange2 >
bool | ystdex::begins_with (const _tRange1 &input, const _tRange2 &test)
template<typename _tRange1 , typename _tRange2 , typename _fPred >
bool | ystdex::ends_with (const _tRange1 &input, const _tRange2 &test, _fPred comp)
| 判断第一个参数指定的串是否以第二个参数结束。 更多...
template<typename _tRange1 , typename _tRange2 >
bool | ystdex::ends_with (const _tRange1 &input, const _tRange2 &test)

## 详细描述

算法。

字符串算法。

注解
  范围包含序列容器及内建数组等。容器概念和容器要求参见 ISO C++ Clause 23 。

参见
  WG21 N3936 25.1[algorithms.general] 。

自从
  build 189

注解
  模板形参关键字 `class` 表示仅支持类类型对象字符串。

自从
  build 304

## 函数说明

template<typename _tRange1 , typename _tRange2 , typename _fPred >

bool ystdex::begins_with | ( | const _tRange1 & | input,
|  | const _tRange2 & | test,
|  | _fPred | comp
| ) |  |

判断第一个参数指定的串是否以第二个参数起始。

注解
  使用 ADL string_begin 和 string_end 指定范围迭代器。
  除 ADL 外接口同 Boost.StringAlgo 。

参见
  ystdex::string_begin, ystdex::string_end

自从
  build 450
  build 519

在文件 string.hpp 第 343 行定义.

参考 ystdex::cpp2014::equal(), ystdex::string_begin(), ystdex::string_end() , 以及 ystdex::string_length().

参考自 ystdex::begins_with(), ystdex::filter_prefix() , 以及 main().

函数调用图:

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

bool ystdex::begins_with | ( | const _tRange1 & | input,
|  | const _tRange2 & | test
| ) |  |

inline

自从
  build 519

在文件 string.hpp 第 352 行定义.

参考 ystdex::begins_with().

函数调用图:
template<typename _tRange1 , typename _tRange2 , typename _fPred >

bool ystdex::ends_with | ( | const _tRange1 & | input,
|  | const _tRange2 & | test,
|  | _fPred | comp
| ) |  |

inline

判断第一个参数指定的串是否以第二个参数结束。

在文件 string.hpp 第 362 行定义.

参考 ystdex::details::ends_with_iter_dispatch(), ystdex::string_begin() , 以及 ystdex::string_end().

参考自 ystdex::ends_with() , 以及 main().

函数调用图:

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

bool ystdex::ends_with | ( | const _tRange1 & | input,
|  | const _tRange2 & | test
| ) |  |

inline

在文件 string.hpp 第 372 行定义.

参考 ystdex::ends_with().

函数调用图:
template<typename _tCon , typename _tIter >

void ystdex::erase_all | ( | _tCon & | con,
|  | _tIter | first,
|  | _tIter | last
| ) |  |

inline

删除指定容器中指定区间中的或全部元素。

注解
  对不含 key_type 的容器视为序列容器。

自从
  build 633

注解
  对整个序列容器使用 ystdex::remove 移除元素范围。
  对序列容器中的部分序列使用 std::remove 移除元素范围。

在文件 container.hpp 第 696 行定义.

template<typename _tCon , typename _tIter , typename _type >

void ystdex::erase_all | ( | _tCon & | con,
|  | _tIter | first,
|  | _tIter | last,
|  | const _type & | value
| ) |  |

inline

在文件 container.hpp 第 702 行定义.

参考 ystdex::details::erase_all().

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

void ystdex::erase_all | ( | _tCon & | con,
|  | const _type & | value
| ) |  |

inline

在文件 container.hpp 第 709 行定义.

参考 ystdex::details::erase_all().

函数调用图:
template<class _tCon , typename _tKey >

bool ystdex::exists | ( | const _tCon & | con,
|  | const _tKey & | key
| ) |  |

inline

判断指定的容器中存在指定的键。

注解
  当容器对象右值可使用返回以整数初始化的类型的成员 `count` 时使用 成员 `count` 实现；否则使用 ADL `end` 指定的容器迭代器， 使用成员 `find` 实现。

自从
  build 488

在文件 container.hpp 第 677 行定义.

参考 ystdex::details::exists().

参考自 NPL::DecomposeMakefileDepList(), YSLib::UI::Menu::Menu(), YSLib::UI::TreeList::QueryNodeState() , 以及 YSLib::Drawing::Typeface::Typeface().

函数调用图:

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

auto ystdex::range_size | ( | const _tRange & | c | ) | -> decltype(details::range_size(c, details::has_range_size<_tRange>()))

inline

取范围大小。

前置条件
  参数指定的迭代器范围（若存在）有效。

注解
  参数 `first` 和 `last` 指定迭代器范围。
  对不以迭代器指定的范围，使用 ADL begin 和 end 取迭代器的值及其类型， 但确定为 const 迭代器时使用 ADL cbegin 和 cend 代替。

自从
  build 546

对 std::initializer_list 的实例直接返回大小，否则： 若可调用结果可转换为 `size_t` 的 ADL 函数 `size` 则使用 ADL `size` ； 否则使用 std::distance 计算范围迭代器确定范围大小。

在文件 container.hpp 第 385 行定义.

参考 CHRLib::c , 以及 ystdex::details::range_size().

参考自 ystdex::vector_concat().

函数调用图:

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

size_t ystdex::range_size | ( | std::initializer_list< _tElem > | il | ) |

inline

参见
  http://wg21.cmeerw.net/cwg/issue1591 。

自从
  build 664

在文件 container.hpp 第 397 行定义.

参考 ystdex::size().

函数调用图:
template<typename _type >

size_t ystdex::string_length | ( | const _type * | str | ) |

inline

计算字符串长度。

自从
  build 664

在文件 string.hpp 第 309 行定义.

参考 YSLib::Text::str.

参考自 ystdex::begins_with(), ystdex::filter_prefix(), YSLib::IO::PathTraits::is_root() , 以及 main().

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

auto ystdex::string_length | ( | const _type & | str | ) | -> decltype(size(str))

inline

在文件 string.hpp 第 315 行定义.

参考 ystdex::size() , 以及 YSLib::Text::str.

函数调用图:
template<typename _tElem >

size_t ystdex::string_length | ( | std::initializer_list< _tElem > | il | ) |

inline

参见
  http://wg21.cmeerw.net/cwg/issue1591 。

在文件 string.hpp 第 323 行定义.