📜  C++ STL中的unordered_multimap insert()(1)

📅  最后修改于: 2023-12-03 15:13:56.828000             🧑  作者: Mango

C++ STL中的unordered_multimap insert()

简介

unordered_multimap是C++标准模板库(STL)中的容器之一,用于存储键-值(Key-Value)对。与unordered_map不同,unordered_multimap允许存在多个具有相同键的元素。

insert()是unordered_multimap容器提供的成员函数之一,用于向容器中插入新的元素。

语法
iterator insert (const value_type& value);
iterator insert (value_type&& value);
iterator insert (const_iterator position, const value_type& value);
iterator insert (const_iterator position, value_type&& value);
template <class InputIterator>
void insert (InputIterator first, InputIterator last);
void insert (std::initializer_list<value_type> il);

参数
  • value:要插入到unordered_multimap的元素。
  • position:一个指向unordered_multimap中的元素的迭代器,新元素将插入到position之前。
返回值
  • iterator:指向插入的元素的迭代器,如果插入失败,则返回指向unordered_multimap尾部的迭代器。
插入元素示例

下面是一些使用insert()函数向unordered_multimap容器插入元素的示例:

#include <iostream>
#include <unordered_map>

int main() {
    std::unordered_multimap<int, std::string> umap;

    // 使用insert函数插入元素
    umap.insert(std::make_pair(1, "one"));
    umap.insert(std::make_pair(2, "two"));
    umap.insert(std::make_pair(3, "three"));
    umap.insert(std::make_pair(3, "third"));  // 插入重复键的元素

    // 打印unordered_multimap中的元素
    for (const auto& pair : umap) {
        std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl;
    }

    return 0;
}

输出:

Key: 1, Value: one
Key: 2, Value: two
Key: 3, Value: three
Key: 3, Value: third

以上示例展示了插入不同键和相同键的元素。由于unordered_multimap允许存在多个具有相同键的元素,因此可以看到有两个键为3的元素。

使用迭代器插入元素

insert()函数还提供了使用迭代器插入元素的重载。下面是一个示例:

#include <iostream>
#include <unordered_map>

int main() {
    std::unordered_multimap<int, std::string> umap;

    // 使用迭代器插入元素
    std::unordered_multimap<int, std::string>::iterator it;
    it = umap.insert(umap.begin(), std::make_pair(1, "one"));
    umap.insert(it, std::make_pair(2, "two"));
    umap.insert(umap.end(), std::make_pair(3, "three"));

    // 打印unordered_multimap中的元素
    for (const auto& pair : umap) {
        std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl;
    }

    return 0;
}

输出:

Key: 1, Value: one
Key: 2, Value: two
Key: 3, Value: three

通过使用插入位置迭代器,我们可以在特定位置插入元素。

总结

unordered_multimapinsert()函数可以用于向容器中插入新的元素。该函数提供了多个重载形式,允许插入单个元素、一段范围内的元素或者使用迭代器指定插入位置。insert()返回一个迭代器,指向插入的元素。在unordered_multimap中,允许存在相同键的多个元素。