C++ multiset value_comp()

2024年8月30日 | 阅读4分钟

C++ Multiset value_comp() 函数返回一个比较对象。此函数用于比较两个元素,以检查第一个元素的键是否排在第二个元素之前。

它接受两个相同类型的参数,如果第一个参数根据较弱的弱序先于第二个参数,则返回 true,否则返回 false

例如: - 对于一个多重集 m,如果两个元素 e1(k1, d1) 和 e2( k2, d2) 是 value_type 类型的对象,其中 k1 和 k2 是它们的 key_type 类型的键,d1 和 d2 是它们的数据,那么 m value_comp( e1 , e2 ) 等价于 m key_comp(k1, k2)。

语法

注意:存储对象定义了一个成员函数

如果在排序顺序中,左键的值先于右键的值并且不等于右键的值,则返回 true。

参数

返回值

它返回一个值比较函数对象。

复杂度

常量。

迭代器有效性

无变化。

数据竞争

容器被访问。

不访问任何包含的元素:并发访问多重集的元素是安全的。

异常安全

如果抛出异常,容器中没有变化。

示例 1

让我们看一个简单的例子来比较元素的值

输出

Compare 2 to 5 (1 is true and 0 is false): 1
Compare 8 to 5 (1 is true and 0 is false): 0

在上面的示例中,comp(2, 5) 返回 true,因为 2 小于 5。而 comp(8, 5) 返回 false,因为 8 不小于 5。

示例 2

让我们看一个简单的例子

输出

mymultiset contains: 0 1 2 3 4

在上面的示例中,highest 变量存储 mymultiset 多重集的最后一个元素,迭代器使用多重集(按排序顺序)的第一个元素进行初始化。do-while 循环用于打印多重集的元素,其中循环将一直运行,直到第一个键小于最后一个键(为此它使用名为 mycomp 的 key_comp() 函数)。

示例 3

让我们看一个简单的例子

输出

vc1( 2,3 ) returns value of true, where vc1 is the function object of s1.
vc2( 2,3 ) returns value of false, where vc2 is the function object of s2.

示例 4

让我们看一个简单的例子来展示 key_comp() 和 value_comp() 之间的区别

输出

highest1 is 5
highest2 is 5

在上面的示例中,当我们比较 key_comp() 和 value_comp() 时,对于此类多重集容器,这两个词是相同的。对于两种类型的函数,它将返回相同的值。

下一个主题C++ multiset