C++ 14标准定义了find()成员函数,std::map
如下所示:
iterator find(const key_type& x); const_iterator find(const key_type& x) const;
为什么这些功能没有定义为noexcept
?内部可能出错的地方,需要抛出一个异常或产生未定义的行为(除了没有找到一个元素,在这种情况下函数返回一个end
迭代器并且无论如何都不需要抛出异常)?
find()
基于Compare()
map 的方法,可能会抛出异常(想象一下可能不正确的复杂键的情况).所以,我们不能确定find()
不会引发异常.