NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
删除算法

删除算法的实现 更多...

删除算法 的协作图:

函数

template<typename Iterator1, typename Iterator2, typename T>
constexpr Iterator2 neforce::remove_copy (Iterator1 first, Iterator1 last, Iterator2 result, const T &value)
 复制范围中不等于指定值的元素
template<typename Iterator1, typename Iterator2, typename Predicate>
constexpr Iterator2 neforce::remove_copy_if (Iterator1 first, Iterator1 last, Iterator2 result, Predicate pred)
 复制范围中不满足谓词的元素
template<typename Iterator, typename T>
constexpr Iterator neforce::remove (Iterator first, Iterator last, const T &value)
 移除范围中等于指定值的元素
template<typename Iterator, typename Predicate>
constexpr Iterator neforce::remove_if (Iterator first, Iterator last, Predicate pred)
 移除范围中满足谓词的元素
template<typename Container, typename U>
constexpr size_t neforce::erase (Container &cont, const U &value)
 从容器中删除所有等于指定值的元素
template<typename Container, typename Predicate>
constexpr size_t neforce::erase_if (Container &cont, Predicate pred)
 从容器中删除所有满足谓词的元素

详细描述

删除算法的实现

函数说明

◆ erase()

template<typename Container, typename U>
size_t neforce::erase ( Container & cont,
const U & value )
constexpr

从容器中删除所有等于指定值的元素

模板参数
Container容器类型
U值类型,必须与容器元素类型相同
参数
cont容器引用
value要删除的值
返回
删除的元素数量

从容器的所有元素中删除所有等于 value 的元素。 此操作会实际删除元素,容器大小会改变。

注解
要求容器提供 begin(), end(), erase() 方法

在文件 remove.hpp 第 162 行定义.

引用了 end(), erase() , 以及 remove_if().

被这些函数引用 erase() , 以及 rb_tree_erase_rebalance().

◆ erase_if()

template<typename Container, typename Predicate>
size_t neforce::erase_if ( Container & cont,
Predicate pred )
constexpr

从容器中删除所有满足谓词的元素

模板参数
Container容器类型
Predicate谓词类型
参数
cont容器引用
pred一元谓词
返回
删除的元素数量

从容器中删除所有满足谓词 pred 的元素。 谓词应接受容器元素类型的值并返回可转换为 bool 的类型。 如果 pred(element) 返回 true,则该元素将被删除。

注解
要求容器提供 begin(), end(), erase() 方法

在文件 remove.hpp 第 187 行定义.

引用了 end(), erase_if(), ref() , 以及 remove_if().

被这些函数引用 erase_if().

◆ remove()

template<typename Iterator, typename T>
Iterator neforce::remove ( Iterator first,
Iterator last,
const T & value )
constexpr

移除范围中等于指定值的元素

模板参数
Iterator迭代器类型
T值类型
参数
first范围起始迭代器
last范围结束迭代器
value要移除的值
返回
新逻辑结束位置的迭代器

从范围 [first, last) 中移除所有等于 value 的元素。 被移除的元素会移动到范围的末尾,但不会被物理删除。 返回的迭代器指向移除操作后范围的新逻辑结束位置。

注解
算法保持剩余元素的相对顺序

在文件 remove.hpp 第 102 行定义.

引用了 find(), is_ranges_fwd_iter_v, move() , 以及 remove().

被这些函数引用 remove().

◆ remove_copy()

template<typename Iterator1, typename Iterator2, typename T>
Iterator2 neforce::remove_copy ( Iterator1 first,
Iterator1 last,
Iterator2 result,
const T & value )
constexpr

复制范围中不等于指定值的元素

模板参数
Iterator1输入迭代器类型
Iterator2输出迭代器类型
T值类型
参数
first输入范围起始迭代器
last输入范围结束迭代器
result输出范围起始迭代器
value要排除的值
返回
输出范围结束迭代器

将范围 [first, last) 中不等于 value 的所有元素复制到以 result 开始的范围。 原范围保持不变。

如果 pred(*it) 返回 true,则该元素将被排除。

在文件 remove.hpp 第 45 行定义.

引用了 is_ranges_fwd_iter_v , 以及 remove_copy().

被这些函数引用 remove_copy().

◆ remove_copy_if()

template<typename Iterator1, typename Iterator2, typename Predicate>
Iterator2 neforce::remove_copy_if ( Iterator1 first,
Iterator1 last,
Iterator2 result,
Predicate pred )
constexpr

复制范围中不满足谓词的元素

模板参数
Iterator1输入迭代器类型
Iterator2输出迭代器类型
Predicate谓词类型
参数
first输入范围起始迭代器
last输入范围结束迭代器
result输出范围起始迭代器
pred一元谓词
返回
输出范围结束迭代器

将范围 [first, last) 中不满足谓词 pred 的所有元素复制到以 result 开始的范围。 原范围保持不变。

在文件 remove.hpp 第 73 行定义.

引用了 is_ranges_fwd_iter_v , 以及 remove_copy_if().

被这些函数引用 remove_copy_if().

◆ remove_if()

template<typename Iterator, typename Predicate>
Iterator neforce::remove_if ( Iterator first,
Iterator last,
Predicate pred )
constexpr

移除范围中满足谓词的元素

模板参数
Iterator迭代器类型
Predicate谓词类型
参数
first范围起始迭代器
last范围结束迭代器
pred一元谓词
返回
新逻辑结束位置的迭代器

从范围 [first, last) 中移除所有满足谓词 pred 的元素。 谓词应接受元素类型的值并返回可转换为 bool 的类型。 如果 pred(*it) 返回 true,则该元素将被移除。

注解
算法保持剩余元素的相对顺序

在文件 remove.hpp 第 133 行定义.

引用了 find_if(), is_ranges_fwd_iter_v, move() , 以及 remove_if().

被这些函数引用 neforce::signal< T >::emit(), erase(), erase_if() , 以及 remove_if().