# std::multimap<Key,T,Compare,Allocator>::end, std::multimap<Key,T,Compare,Allocator>::cend

< cpp‎ | container‎ | multimap

iterator end(); |  | (C++11 前)
iterator end() noexcept; |  | (C++11 起)
const_iterator end() const; |  | (C++11 前)
const_iterator end() const noexcept; |  | (C++11 起)
const_iterator cend() const noexcept; |  | (C++11 起)

返回指向 `multimap` 末元素后一元素的迭代器。

此元素表现为占位符；试图访问它导致未定义行为。

### 参数

（无）

### 返回值

指向后随最后元素的迭代器。

### 复杂度

常数。

### 示例

    #include <algorithm>
    #include <cassert>
    #include <iostream>
    #include <map>
    #include <string>
    #include <cstddef>

    int main()
    {
        auto show_node = [](const auto& node, char ending = '\n') {
            std::cout << "{ " << node.first << ", " << node.second << " }" << ending;
        };

        std::multimap<std::size_t, std::string> mmap;
        assert(mmap.begin() == mmap.end());   // OK
        assert(mmap.cbegin() == mmap.cend()); // OK

        mmap.insert({ sizeof(long), "LONG" });
        show_node(*(mmap.cbegin()));
        assert(mmap.begin() != mmap.end());   // OK
        assert(mmap.cbegin() != mmap.cend()); // OK
        mmap.begin()->second = "long";
        show_node(*(mmap.cbegin()));

        mmap.insert({ sizeof(int), "int" });
        show_node(*mmap.cbegin());

        mmap.insert({ sizeof(short), "short" });
        show_node(*mmap.cbegin());

        mmap.insert({ sizeof(char), "char" });
        show_node(*mmap.cbegin());

        mmap.insert({{ sizeof(float), "float" }, { sizeof(double), "double" }});

        std::cout << "mmap = { ";
        std::for_each(mmap.cbegin(), mmap.cend(), [&](const auto& n) { show_node(n, ' '); });
        std::cout << "};\n";
    }

可能的输出：

    { 8, LONG }
    { 8, long }
    { 4, int }
    { 2, short }
    { 1, char }
    mmap = { { 1, char } { 2, short } { 4, int } { 4, float } { 8, long } { 8, double } };

### 参阅

begin cbegin (C++11) | 返回指向起始的迭代器 (公开成员函数)