📜  C++ STL中的multimap :: begin()和multimap :: end()(1)

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

C++ STL中的multimap::begin()和multimap::end()

介绍

在C++ STL中,multimap是一个关联容器,它类似于map,但允许多个元素具有相同的键值。multimap中的元素按键值自动排序,并且可以在logarithmic时间内插入、删除和搜索元素。

multimap的begin()和end()成员函数是用于获取multimap容器中第一个和最后一个元素的迭代器的函数,它们的使用非常方便。

multimap::begin()

multimap::begin()函数返回一个指向multimap容器中第一个元素的迭代器。如果multimap为空,则begin()函数返回与end()函数返回的迭代器相同的迭代器。

以下是multimap::begin()函数的语法:

multimap<Key, T, Compare, Alloc>::iterator multimap::begin() noexcept;

其中,Key是键类型,T是值类型,Compare是比较函数类型,Alloc是分配器类型。

以下是使用multimap::begin()函数的示例代码:

#include <iostream>
#include <map>

int main() {
    std::multimap<int, std::string> myMap{{1, "apple"}, {2, "banana"}, {2, "orange"}, {3, "pear"}};
    for (auto it = myMap.begin(); it != myMap.end(); it++) {
        std::cout << it->first << ": " << it->second << std::endl;
    }
    return 0;
}

输出:

1: apple
2: banana
2: orange
3: pear
multimap::end()

multimap::end()函数返回一个指向multimap容器中最后一个元素的下一个元素的迭代器。通常情况下,end()函数返回尾后迭代器,用于表示遍历multimap容器的末尾。

以下是multimap::end()函数的语法:

multimap<Key, T, Compare, Alloc>::iterator multimap::end() noexcept;

以下是使用multimap::end()函数的示例代码:

#include <iostream>
#include <map>

int main() {
    std::multimap<int, std::string> myMap{{1, "apple"}, {2, "banana"}, {2, "orange"}, {3, "pear"}};
    for (auto it = myMap.begin(); it != myMap.end(); it++) {
        std::cout << it->first << ": " << it->second << std::endl;
    }
    return 0;
}

输出:

1: apple
2: banana
2: orange
3: pear

需要注意的是,end()函数返回的是尾后迭代器,因此不能对其进行解引用,否则会出现不可预测的结果。

参考