C++官网参考链接:https://cplusplus.com/reference/map/multimap/end/
公有成员函数
<map>
std::multimap::end
C++98
iterator end();
const_iterator end() const;
C++11
iterator end() noexcept;
const_iterator end() const noexcept;
返回指向结束的iterator
返回一个指向multimap容器中结束后元素的iterator。
结束后的元素是理论元素,在multimap容器的最后一个元素之后。它不指向任何元素,因此不应解引用。
因为标准库函数使用的范围不包括它们的结束iterator所指向的元素,所以这个函数经常与multimap::begin组合使用,以指定一个包括容器中所有元素的范围。
如果容器为empty,此函数返回与multimap::begin相同的内容。
形参
没有形参。
返回值
指向容器中结束后元素的iterator。
如果multimap对象是const限定的,该函数返回一个const_iterator。否则,它返回一个iterator。
成员类型iterator和const_iterator是指向元素的双向iterator(bidirectional iterator)类型。
用例
// multimap::begin/end
#include <iostream>
#include <map>
int main ()
{
std::multimap<char,int> mymultimap;
mymultimap.insert (std::pair<char,int>('a',10));
mymultimap.insert (std::pair<char,int>('b',20));
mymultimap.insert (std::pair<char,int>('b',150));
// show content:
for (std::multimap<char,int>::iterator it=mymultimap.begin(); it!=mymultimap.end(); ++it)
std::cout << (*it).first << " => " << (*it).second << '\n';
return 0;
}
输出:
复杂度
常量。
iterator的有效性
没有变化。
数据竞争
容器被访问(const和非const版本都不会修改容器)。
调用不访问包含的元素,但返回的iterator可用于访问或修改元素。同时访问或修改不同的元素是安全的。
异常安全
无抛出保证:该成员函数从不抛出异常。
返回的iterator的复制构造或赋值也保证永远不会抛出。