📅  最后修改于: 2023-12-03 15:13:55.988000             🧑  作者: Mango
在C++标准模板库(STL)中的multiset
容器中,operator==()
函数用于比较两个multiset
容器是否相等。它将在两个multiset
容器之间执行逐元素比较的操作。
在使用multiset
容器及其相关函数之前,您需要包含以下头文件:
#include <set>
operator==()
函数的签名如下:
template<class Key, class Compare, class Allocator>
bool operator==(
const multiset<Key, Compare, Allocator>& lhs,
const multiset<Key, Compare, Allocator>& rhs
);
operator==()
函数接受两个参数:
lhs
:要比较的左侧multiset
容器。rhs
:要比较的右侧multiset
容器。operator==()
函数返回一个布尔值,如果 lhs
等于 rhs
,则返回true
;否则返回false
。
以下示例演示了如何使用operator==()
函数来比较两个multiset
容器是否相等:
#include <iostream>
#include <set>
int main() {
std::multiset<int> set1 = {1, 2, 3, 4, 5};
std::multiset<int> set2 = {4, 3, 5, 1, 2};
std::multiset<int> set3 = {1, 2, 3, 3, 4};
if (set1 == set2) {
std::cout << "set1 is equal to set2" << std::endl;
} else {
std::cout << "set1 is not equal to set2" << std::endl;
}
if (set1 == set3) {
std::cout << "set1 is equal to set3" << std::endl;
} else {
std::cout << "set1 is not equal to set3" << std::endl;
}
return 0;
}
输出:
set1 is equal to set2
set1 is not equal to set3
在上述示例中,我们创建了三个multiset
容器,分别为set1
,set2
和set3
。我们使用operator==()
函数来比较这些multiset
容器是否相等。第一个比较返回true
,因为set1
和set2
中的元素相同,只是顺序不同。第二个比较返回false
,因为set1
和set3
中的元素不同。
multiset
容器是一个有序容器,其中可容纳重复的元素。因此,operator==()
函数不仅比较元素的值,还比较元素的顺序。multiset
容器可以使用自定义比较函数和分配器进行构造。在使用operator==()
函数进行比较之前,请确保两个multiset
容器具有相同的比较函数和分配器。multiset
容器中的元素是否相同,但不考虑顺序,可以先将两个multiset
容器排序,然后使用operator==()
函数进行比较。更多关于C++ STL multiset
容器的信息,请参阅官方文档。