C++ multimap::clear() 函数



C++ 的std::multimap::clear()函数用于移除 multimap 中的所有元素,使其大小变为 0。此函数确保 multimap 的大小变为零,但不会释放 multimap 分配的内存。它对于在不销毁容器的情况下重置容器以供重复使用非常有效。此函数的时间复杂度为线性,即 O(n)。

语法

以下是 std::multimap::clear() 函数的语法。

void clear();

参数

此函数不接受任何参数。

返回值

此函数不返回任何内容。

示例

让我们看下面的例子,我们将演示 clear() 函数的使用方法。

#include <iostream>
#include <map>
int main()
{
    std::multimap<int, std::string> x;
    x.insert({1, "Hi"});
    x.insert({2, "Hello"});
    std::cout << "Size before clear: " << x.size() << std::endl;
    x.clear();
    std::cout << "Size after clear: " << x.size() << std::endl;
    return 0;
}

输出

以上代码的输出如下:

Size before clear: 2
Size after clear: 0

示例

考虑以下示例,我们将调用 clear() 函数后重新使用 multimap。

#include <iostream>
#include <map>
int main()
{
    std::multimap<int, std::string> a;
    a.insert({1, "Audi"});
    a.clear();
    a.insert({2, "Cruze"});
    for (const auto& pair : a) {
        std::cout << pair.first << ": " << pair.second << std::endl;
    }
    return 0;
}

输出

以下是以上代码的输出:

2: Cruze

示例

在下面的示例中,我们将检查 clear() 函数之前和之后 multimap 是否为空。

#include <iostream>
#include <map>
int main()
{
    std::multimap<int, std::string> a;
    a.insert({1, "TP"});
    a.insert({2, "TutorialsPoint"});
    std::cout << "Empty before clear : " << std::boolalpha << a.empty() << std::endl;
    a.clear();
    std::cout << "Empty after clear : " << std::boolalpha << a.empty() << std::endl;
    return 0;
}

输出

如果我们运行以上代码,它将生成以下输出:

Empty before clear : false
Empty after clear : true
multimap.htm
广告