C++14标准定义std::map
的find()成员函数如下:
iterator find(const key_type& x);
const_iterator find(const key_type& x) const;
为什么这些函数没有定义为noexcept
?内部可能出现什么问题,这将需要抛出异常或产生未定义的行为(除了找不到元素,在这种情况下函数返回 end
迭代器并且无论如何都不需要抛出异常) ?
最佳答案
find()
基于 map 的 Compare()
方法,这可能会引发异常(想象一下复杂键可能不正确的情况) .因此,我们不能确定 find()
不会引发异常。
关于c++ - 为什么 std::map find() 没有声明为 noexcept?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34638399/