C++ multimap::swap() 函数



C++ 的 std::multimap::swap() 函数用于交换两个 multimap 的内容。它交换两个 multimap 的元素、大小和分配器,而无需重新分配内存或更改单个元素。

swap() 函数可以通过两种方式调用:作为成员函数或作为非成员函数。当用作成员函数时,swap() 的时间复杂度为常数,即 O(1),否则当用作非成员函数时为线性,即 O(n)。您可以在下面找到两种方法的语法。

语法

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

void swap (multimap& x);
or	
void swap (multimap<Key,T,Compare,Alloc>& first, multimap<Key,T,Compare,Alloc>& second);

参数

  • x − 表示相同类型的 multimap 对象。
  • first − 表示第一个 multimap 对象
  • second − 表示相同类型的第二个 multimap 对象。

返回值

此函数不返回任何值。

示例

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

#include <iostream>
#include <map>
int main()
{
    std::multimap<int, std::string> a;
    std::multimap<int, std::string> b;
    a.insert({1, "Vanakam"});
    a.insert({2, "Namaste"});
    b.insert({3, "Hi"});
    b.insert({4, "Hello"});
    a.swap(b);
    std::cout << "First multimap contents after swap:" << std::endl;
    for (const auto& elem : a) {
        std::cout << elem.first << ": " << elem.second << std::endl;
    }
    std::cout << "second multimap contents after swap:" << std::endl;
    for (const auto& elem : b) {
        std::cout << elem.first << ": " << elem.second << std::endl;
    }
    return 0;
}

输出

以下是上述代码的输出:

First multimap contents after swap:
3: Hi
4: Hello
second multimap contents after swap:
1: Vanakam
2: Namaste

示例

考虑以下场景,我们将交换两个空的 multimap。

#include <iostream>
#include <map>
int main()
{
    std::multimap<int, std::string> a;
    std::multimap<int, std::string> b;
    a.swap(b);
    std::cout << "Size of first multimap after swap: " << a.size() << std::endl;
    std::cout << "SSize of second multimap after swap: " << b.size() << std::endl;
    return 0;
}

输出

上述代码的输出如下:

Size of first multimap after swap: 0
Size of second multimap after swap: 0
multimap.htm
广告