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
廣告