C++ multimap::insert() 函式



C++ 的std::multimap::insert()函式用於向 multimap 容器新增元素。它將鍵值對插入到 multimap 中,並根據鍵保持排序順序。如果鍵已存在,它不會覆蓋現有值,從而保留 multimap 的唯一鍵屬性。此函式返回一個指向已插入元素的迭代器,方便進一步操作。

此函式有 4 個多型變體:插入單個元素、帶提示的插入、範圍插入和初始化列表插入(您可以在下面找到所有變體的語法)。

語法

以下是 std::multimap::insert() 函式的語法。

iterator insert (const value_type& val);
or
iterator insert (const_iterator position, const value_type& val);
or
void insert (InputIterator first, InputIterator last);	
or
void insert (initializer_list<value_type> il);

引數

  • val − 表示要插入的值。
  • position − 表示插入元素的位置提示。
  • first, last − 指定元素範圍的迭代器。
  • il − 表示初始化列表物件。

返回值

此函式返回一個指向新插入元素的迭代器。

示例

讓我們看下面的例子,我們將插入單個鍵值對。

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

輸出

以上程式碼的輸出如下:

1: A
2: B

示例

考慮下面的例子,我們將使用提示版本並插入一個元素。

#include <iostream>
#include <map>
int main()
{
    std::multimap<int, std::string> a;
    auto x = a.begin();
    x = a.insert(x, std::make_pair(1, "TutorialsPoint"));
    a.insert(x, std::make_pair(2, "TP"));
    for (const auto& pair : a) {
        std::cout << pair.first << ": " << pair.second << std::endl;
    }
    return 0;
}

輸出

以上程式碼的輸出如下:

1: TutorialsPoint
2: TP

示例

在下面的例子中,我們將使用範圍版本並插入一個元素。

#include <iostream>
#include <map>
#include <vector>
int main()
{
    std::multimap<int, std::string> a;
    std::vector<std::pair<int, std::string>> x = {{1, "AB"}, {2, "BC"}, {2, "CD"}};
    a.insert(x.begin(), x.end());
    for (const auto& pair : a) {
        std::cout << pair.first << ": " << pair.second << std::endl;
    }
    return 0;
}

輸出

如果我們執行以上程式碼,它將生成以下輸出:

1: AB
2: BC
2: CD

示例

下面是使用 emplace() 函式與 insert() 函式一起使用的例子。

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

輸出

讓我們編譯並執行上面的程式,這將產生以下結果:

1: HELLO
2: HI
multimap.htm
廣告