既然 std::vector::iterator 是遗留的,那么获得 std::vector 迭代器的正确/推荐方法是什么?

问题描述

来自cppreference

iterator    LegacyRandomAccessIterator
const_iterator  Constant LegacyRandomAccessIterator

它是不是应该不再使用了? 获得 std::vector iterator 的正确/推荐方法是什么?我们应该使用唯一的 auto 吗?

解决方法

legacy 并不意味着它不受支持或被弃用。它只是意味着它不是新的,因此使用术语 legacyLegacy 前缀仅用于区分 C++20 的 RandomAccessIterator 和预先存在的 LegacyRandomAccessIterator(根据 C++ 两者都是“概念”)。不过,我认为标准中实际上并未提及 Legacy 一词。