non-const find() in std::unordered_set

non-const find() in std::unordered_set

本文关键字:unordered set std in find non-const      更新时间:2023-10-16

为什么std::unordered_set()中有非CONST find()

iterator find( const Key& key );
const_iterator find( const Key& key ) const;

iteratorconst_iterator相同,为什么有 find()的非const版本?

http://en.cppreference.com/w/cpp/container/unordered_set/find

迭代器与const_iterator相同,为什么find()有非const版本?

,因为迭代器与const_iterator的强制性不相同,如文档中所述:

成员类型的迭代器和const_iterator 可以是与同一类型的别名。由于迭代器为可转换 to const_iterator,因此应在函数参数列表中使用const_iterator,以避免违反一个定义规则。

强调是我的。由于它们不是强制性的,因此某些通用代码可以取决于find()返回的特定类型的迭代器,并且应该与其他容器一致。