public member type
<unordered_map>

std::unordered_multimap::end

container iterator (1)
      iterator end() noexcept;const_iterator end() const noexcept;
bucket iterator (2)
      local_iterator end (size_type n);const_local_iterator end (size_type n) const;
返回指向末尾的迭代器
返回一個指向unordered_multimap容器(1)或其儲存桶(2)的“越尾”元素的迭代器。

end返回的迭代器不指向任何元素,但指向unordered_multimap容器中最後一個元素之後的那個位置(其“越尾”位置)。因此,返回的值不應被解引用——它通常用於描述範圍的開端,例如[begin,end).

請注意,unordered_multimap物件不對具有不同鍵的元素進行排序。但無論如何,從它的begin到它的end所覆蓋的範圍,直到失效之前,都包含容器(或儲存桶)中的所有元素。

引數

n
儲存桶編號。此值應小於bucket_count。
這是一個可選引數,它改變了此成員函式的行為:如果設定了該引數,則檢索到的迭代器指向儲存桶的“越尾”元素,否則它指向容器的“越尾”元素。
成員型別size_type是一種無符號整型型別。

返回值

指向容器(1)或儲存桶(2)末尾之後元素的迭代器。

所有返回型別(iterator, const_iterator, local_iteratorconst_local_iterator)都是成員型別。在unordered_multimap類模板中,它們是forward iterator型別。
區域性迭代器與非區域性迭代器屬於同一類別。它們的value_type, difference_type, 指標引用成員型別也相同。但是迭代器本身不一定是同一型別。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// unordered_multimap::begin/end example
#include <iostream>
#include <unordered_map>

int main ()
{
  std::unordered_multimap<std::string,std::string> myumm = {
    {"apple","red"},
    {"apple","green"},
    {"orange","orange"},
    {"strawberry","red"}
  };

  std::cout << "myumm contains:";
  for ( auto it = myumm.begin(); it != myumm.end(); ++it )
    std::cout << " " << it->first << ":" << it->second;
  std::cout << std::endl;

  std::cout << "myumm's buckets contain:\n";
  for ( unsigned i = 0; i < myumm.bucket_count(); ++i) {
    std::cout << "bucket #" << i << " contains:";
    for ( auto local_it = myumm.begin(i); local_it!= myumm.end(i); ++local_it )
      std::cout << " " << local_it->first << ":" << local_it->second;
    std::cout << std::endl;
  }

  return 0;
}

可能的輸出
myumm contains: apple:red apple:green orange:orange strawberry:red
myumm's buckets contain:
bucket #0 contains:
bucket #1 contains:
bucket #2 contains: apple:red apple:green
bucket #3 contains: orange:orange
bucket #4 contains: strawberry:red


複雜度

常量。

迭代器有效性

沒有變化。

另見