📅  最后修改于: 2023-12-03 15:29:50.537000             🧑  作者: Mango
在 C++ STL 中,Multiset 是一种关联容器,它允许存储具有相同值的元素,并且这些元素可以按顺序进行访问。这一类容器依赖于比较对象的比较函数,并允许在插入时指定插入位置。Multiset 中的每个元素均为可重复元素。本篇介绍其中的 operator>= 函数。
bool operator>= (const multiset<Key,Compare>& lhs, const multiset<Key,Compare>& rhs);
该函数用于比较两个 Multiset 是否相等。如果 lhs 中每个元素都大于等于 rhs 中的相应元素,则返回 true。
如果 lhs 中每个元素都大于等于 rhs 中的相应元素,则返回 true,否则返回 false。
#include <iostream>
#include <set>
int main()
{
std::multiset<int> set1{1,2,3,3,4};
std::multiset<int> set2{1,2,3,5,5};
std::cout << std::boolalpha << (set1 >= set2) << '\n';
std::cout << std::boolalpha << (set2 >= set1) << '\n';
std::cout << std::boolalpha << (set1 >= set1) << '\n';
return 0;
}
输出:
false
false
true
此示例中,我们创建了两个 Multiset 对象 set1 和 set2,分别存储了一些重复的整数值。我们使用 operator>= 函数比较它们的元素,会发现 set1 中并不是每个元素都大于等于 set2 中的相应元素,因此返回值为 false。同理,当我们将左右操作数交换时,再次调用 operator>= 函数也会返回 false。当比较同一 Multiset 时,返回值为 true。
C++ STL 中的 Multiset 提供了对多个重复元素的存储、排序和访问的支持,operator>= 函数则是用来比较两个 Multiset 是否相等的一个有用工具。在使用时,需要注意比较的序列本身是否具有可比性。