C++ STL中的unordered_multimap empty()函数

C++ STL中的unordered_multimap empty()函数

C++ STL中,unordered_multimap是一个无序的关联容器类型。它允许用户在常数时间内执行插入和查找操作。empty()函数是unordered_multimap类中的一个函数,用于判断该容器是否为空。本文将详细介绍unordered_multimapempty()函数及其用法。

unordered_multimap的定义

在讲解empty()函数之前,我们先来了解一下unordered_multimap的定义。

unordered_multimap是一个存储键-多个值的无序容器,它使用哈希表来实现。与multimap不同,unordered_multimap中的元素是无序的,因此不能根据元素位置来访问它们。但可以根据键值来访问元素。

以下是unordered_multimap的定义:

“` c++
template < class Key, // unordered_multimap::key_type class T, // unordered_multimap::mapped_type class Hash = hash, // unordered_multimap::hasher
class Pred = equal_to, // unordered_multimap::key_equal
class Alloc = allocator> // unordered_multimap::allocator_type

class unordered_multimap;

其中,`Key`表示键类型,`T`表示值类型,`Hash`表示哈希函数类型,`Pred`表示键的比较函数,`Alloc`表示分配器类型。

例如,以下代码定义了一个存储int类型键和string类型值的`unordered_multimap`:

``` c++
#include <unordered_map>
#include <string>
using namespace std;

int main() {
    unordered_multimap<int, string> ummap;
    return 0;
}
</code></pre>

<h2><code>empty()</code>函数的定义</h2>

<code>empty()</code>函数是用于判断<code>unordered_multimap</code>容器是否为空的函数。如果容器为空,则返回true,否则返回false。

以下是<code>unordered_multimap</code>中<code>empty()</code>函数的定义:


``` c++
bool empty() const noexcept;


## `empty()`函数的使用

在使用`empty()`函数之前,需要先创建一个`unordered_multimap`容器。以下是一个示例:

``` c++
#include <iostream>
#include <unordered_map>
#include <string>
using namespace std;

int main() {
    unordered_multimap<int, string> ummap = {{1, "one"}, {2, "two"}, {2, "second"}};
    return 0;
}
</code></pre>

以上代码创建了一个包含三个元素的<code>unordered_multimap</code>容器,其中键值对分别为(1,"one")、(2,"two")和(2,"second")。

接下来,我们可以通过<code>empty()</code>函数来判断容器是否为空。以下是一个示例:


``` c++
#include 
#include 
#include 
using namespace std;


int main() {
    unordered_multimap<int, string> ummap = {{1, "one"}, {2, "two"}, {2, "second"}};
    if (ummap.empty()) {
        cout << "The unordered_multimap is empty." << endl;
    } else {
        cout << "The unordered_multimap is not empty." << endl;
    }
    return 0;
}

输出为:

```bash
The unordered_multimap is not empty.
</code></pre>

以上代码使用<code>empty()</code>函数判断<code>ummap</code>是否为空,并输出结果。

如果我们将<code>ummap</code>容器中的元素全部删除,再次使用<code>empty()</code>函数,输出将为:


``` c++
#include 
#include 
#include 
using namespace std;


int main() {
    unordered_multimap<int, string> ummap = {{1, "one"}, {2, "two"}, {2, "second"}};
    ummap.clear();
    if (ummap.empty()) {
        cout << "The unordered_multimap is empty." << endl;
    } else {
        cout << "The unordered_multimap is not empty." << endl;
    }
    return 0;
}

输出为:

```bash
The unordered_multimap is empty.

以上代码使用clear()函数将ummap中的元素全部删除,再使用empty()函数判断ummap是否为空,并输出结果。

结论

empty()函数是unordered_multimap类中判断容器是否为空的函数。如果容器为空,则返回true,否则返回false。使用empty()函数可以方便地判断unordered_multimap容器是否为空,从而进行相应的处理。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

C++ 教程