首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Compare

概念Compare是用户提供的函数对象类型中的一些标准库工具所期望的一组需求。

应用于类型对象的函数调用操作的返回值。Compare,何时上下文转换到bool,产量true如果调用的第一个参数出现在严格弱序关系由此引发Compare类型,以及false否则。

就像任何BinaryPredicate,该表达式的求值不允许调用取消引用的迭代器的非Const成员函数。

所需

类型T满足Compare如果。

  • 类型T满足BinaryPredicate,和给予。
  • comp,类型的对象Compare
  • equiv(a, b),相当于!comp(a, b) &&?!comp(b, a)

下列表达式必须有效并具有指定的效果。

Expression

Return type

Requirements

comp(a, b)

implicitly convertible to bool

Establishes strict weak ordering relation with the following properties For all a, comp(a,a)==false If comp(a,b)==true then comp(b,a)==false if comp(a,b)==true and comp(b,c)==true then comp(a,c)==true

equiv(a, b)

bool

Establishes equivalence relationship with the following properties For all a, equiv(a,a)==true If equiv(a,b)==true, then equiv(b,a)==true If equiv(a,b)==true and equiv(b,c)==true, then equiv(a,c)==true

  • 为所有人a,,,comp(a,a)==false
  • 如果comp(a,b)==true然后comp(b,a)==false
  • 如果comp(a,b)==truecomp(b,c)==true然后comp(a,c)==true
代码语言:txt
复制
 `equiv(a, b)`   `bool`   Establishes equivalence relationship with the following properties 
  • 为所有人a,,,equiv(a,a)==true
  • 如果equiv(a,b)==true,然后equiv(b,a)==true
  • 如果equiv(a,b)==trueequiv(b,c)==true,然后equiv(a,c)==true

注:comp诱导严格全序关于由equiv...

标准库

以下标准库设施期望Compare类型。

set

collection of unique keys, sorted by keys (class template)

map

collection of key-value pairs, sorted by keys, keys are unique (class template)

multiset

collection of keys, sorted by keys (class template)

multimap

collection of key-value pairs, sorted by keys (class template)

priority_queue

adapts a container to provide priority queue (class template)

sort

sorts a range into ascending order (function template)

sort

sorts the elements (public member function of std::forward_list)

sort

sorts the elements (public member function of std::list)

stable_sort

sorts a range of elements while preserving order between equal elements (function template)

partial_sort

sorts the first N elements of a range (function template)

partial_sort_copy

copies and partially sorts a range of elements (function template)

is_sorted (C++11)

checks whether a range is sorted into ascending order (function template)

is_sorted_until (C++11)

finds the largest sorted subrange (function template)

nth_element

partially sorts the given range making sure that it is partitioned by the given element (function template)

lower_bound

returns an iterator to the first element not less than the given value (function template)

upper_bound

returns an iterator to the first element greater than a certain value (function template)

binary_search

determines if an element exists in a certain range (function template)

equal_range

returns range of elements matching a specific key (function template)

merge

merges two sorted ranges (function template)

merge

merges two sorted lists (public member function of std::forward_list)

merge

merges two sorted lists (public member function of std::list)

inplace_merge

merges two ordered ranges in-place (function template)

includes

returns true if one set is a subset of another (function template)

set_difference

computes the difference between two sets (function template)

set_intersection

computes the intersection of two sets (function template)

set_symmetric_difference

computes the symmetric difference between two sets (function template)

set_union

computes the union of two sets (function template)

push_heap

adds an element to a max heap (function template)

pop_heap

removes the largest element from a max heap (function template)

make_heap

creates a max heap out of a range of elements (function template)

sort_heap

turns a max heap into a range of elements sorted in ascending order (function template)

is_heap (C++11)

checks if the given range is a max heap (function template)

is_heap_until (C++11)

finds the largest subrange that is a max heap (function template)

max

returns the greater of the given values (function template)

max_element

returns the largest element in a range (function template)

min

returns the smaller of the given values (function template)

min_element

returns the smallest element in a range (function template)

minmax (C++11)

returns the smaller and larger of two elements (function template)

minmax_element (C++11)

returns the smallest and the largest elements in a range (function template)

lexicographical_compare

returns true if one range is lexicographically less than another (function template)

next_permutation

generates the next greater lexicographic permutation of a range of elements (function template)

prev_permutation

generates the next smaller lexicographic permutation of a range of elements (function template)

代码语言:txt
复制
 ? cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com