C++ 命名要求: BinaryPredicate
BinaryPredicate 是一组标准库设施对用户提供的参数所期望的要求。
给定一个 BinaryPredicate bin_pred
和一对迭代器 iter1
和 iter2
,或者一个迭代器 iter
和一个 (可能是 const) (自 C++20 起)值 value
,表达式 bin_pred(*iter1, *iter2)
或 bin_pred(*iter, value)
必须在上下文中可转换为 bool
。
此外,该表达式的求值不允许调用解引用迭代器的非 const 成员函数; 从语法上讲,谓词必须接受 const 对象参数,并且无论其参数是 const 还是非 const,其行为都相同 (自 C++20 起)。
要求
- Predicate
- CopyConstructible(除非另有说明)
标准库
以下标准库设施期望一个不是 Compare 类型的 BinaryPredicate。
pub | unique(C++11) | 移除连续的重复元素 (std::forward_list<T,Allocator> 的公共成员函数) |
pub | unique | 移除连续的重复元素 (std::list<T,Allocator> 的公共成员函数) |
pub | find_end | 在特定范围内查找最后一个元素序列 |
pub | find_first_of | 搜索一组元素中的任意一个 |
pub | adjacent_find | 查找第一个相等的(或满足给定谓词的)相邻项 |
pub | mismatch | 查找两个范围首次不同的位置 |
pub | equal | 确定两组元素是否相同 |
pub | is_permutation(C++11) | 确定一个序列是否是另一个序列的排列 |
pub | 搜索 | 搜索一个元素范围 |
pub | search_n | 在范围内搜索元素的连续副本数量 |
pub | unique | 移除范围内连续的重复元素 (函数模板) |
pub | unique_copy | 创建某个元素范围的副本,其中不包含连续的重复项 |
pub | not2 (在 C++17 中已弃用) (在 C++20 中已移除) | 构造自定义 std::binary_negate 对象 |
pub | unordered_set(C++11) | 唯一键的集合,按键散列 |
pub | unordered_map(C++11) | 键值对的集合,按键散列,键是唯一的 |
pub | unordered_multiset(C++11) | 键的集合,按键散列 |
pub | unordered_multimap(C++11) | 键值对的集合,按键散列 |