【发布时间】:2018-04-07 07:08:33
【问题描述】:
当我使用std::unordered_map<K, V> 时,我知道每个键值对的迭代器都是std::unordered_map<K, V>::iterator 类型。我也知道迭代器本身指向pair<const K, V>。但是,我知道迭代器指向一对的唯一原因是查看示例代码。这种行为在哪里定义?
例如,如果我转到the documentation at cppreference.com,我看不到这种行为的解释。它只是说成员iterator 被定义为ForwardIterator。
所以,我的问题是,聪明的开发人员怎么会知道std::unordered_map<K, V>::iterator 实际代表什么?我确信我缺少一些逻辑上的飞跃。
【问题讨论】:
-
提到
ForwardIterator是一个可点击的链接。进一步感兴趣:“std::unordered_map满足Container、AllocatorAwareContainer、UnorderedAssociativeContainer的要求。”这些驼峰式标识符中的每一个也是链接,包含有关容器预期行为方式的更多信息。 -
cppreference.com 是一个公共维基。请修复该页面并使其更清晰。我也会这样做。
-
完成。我编辑了页面并在此处添加了答案:stackoverflow.com/a/66164132/4561887。希望编辑坚持。如果没有,请改用 cplusplus.com 参考页 (cplusplus.com/reference/unordered_map/unordered_map),因为它说
iterator是:a forward iterator to value_type和const_iterator是a forward iterator to const value_type,并且将value_type显示为pair<const key_type,mapped_type>。