C++STL中的unordered_multiset::empty()函数
C++STL(C++ Standard Library)是C++程序语言的标准程序库,它提供了一系列的类模板、函数模板和算法。这其中就包括了unordered_multiset
类模板,该模板可用于存储一组键值相等的元素,其中元素的顺序是未定义的。该模板中的empty()
函数可用于检查unordered_multiset
是否为空。本文将介绍该函数的用法、示例和使用注意事项。
用法
empty()
函数的用法非常简单,它不需要传递任何参数,直接调用即可。该函数返回一个bool
类型的值,代表unordered_multiset
是否为空。如果该函数返回true
,则表示unordered_multiset
中不含有任何元素;反之,则表示unordered_multiset
中至少含有一个元素。
下面是empty()
函数的语法:
bool empty() const;
示例
下面的例子演示了empty()
函数的用法。在该例子中,在一个空的unordered_multiset
中插入了2个元素,并检查了unordered_multiset
是否为空。最后,又分别从unordered_multiset
中删除了1个元素和所有元素,并再次检查了unordered_multiset
是否为空。
#include <iostream>
#include <unordered_set>
int main() {
std::unordered_multiset<int> mySet;
mySet.insert(10);
mySet.insert(20);
if (mySet.empty()) {
std::cout << "mySet is empty" << std::endl;
} else {
std::cout << "mySet is not empty" << std::endl;
}
mySet.erase(10);
if (mySet.empty()) {
std::cout << "mySet is empty" << std::endl;
} else {
std::cout << "mySet is not empty" << std::endl;
}
mySet.clear();
if (mySet.empty()) {
std::cout << "mySet is empty" << std::endl;
} else {
std::cout << "mySet is not empty" << std::endl;
}
return 0;
}
程序输出:
mySet is not empty
mySet is not empty
mySet is empty
从程序输出可以看出,unordered_multiset
在插入了2个元素后,empty()
函数返回false
;在删除了1个元素后,empty()
函数仍返回false
;只有当mySet
中不含任何元素时,empty()
函数才返回true
。
注意事项
在使用empty()
函数时,需要注意以下几点:
empty()
函数必须在unordered_multiset
对象上调用,不能作为自由函数使用。empty()
函数是一个常量成员函数,不会修改unordered_multiset
对象的状态。empty()
函数的时间复杂度为常量级别,即O(1)。
结论
unordered_multiset
类模板提供了empty()
函数,用于检查unordered_multiset
是否为空。该函数是一个常量成员函数,并且时间复杂度为常量级别。使用该函数时,需要注意该函数必须在unordered_multiset
对象上调用,并且不会修改unordered_multiset
对象的状态。