【发布时间】:2020-12-26 13:18:18
【问题描述】:
来自cppreference:
iterator LegacyRandomAccessIterator
const_iterator Constant LegacyRandomAccessIterator
它不应该再使用了吗?
获得std::vector iterator 的正确/推荐方式是什么?我们应该使用唯一的auto吗?
【问题讨论】:
-
Legacy 并不代表您认为的意思。您从哪里得到的假设是它暗示了一些弃用的东西?
-
@Fureeish "Deprecated 意味着它会在不久的将来被删除,Legacy 意味着它会因为向后兼容或其他原因而保留。两者都意味着它们不应该被新代码使用。 "谷歌搜索 SO 答案的第一个结果。这个问题与 Java 有关。
-
标准中已经提到了很多定义的实现。这并不意味着你不能在你的 c++ 代码中安全地使用这些。
-
这就是你的困惑——你读的是 Java 的答案,而不是 C++ 的答案。这也是关于 API,而不是关于概念的名称(不一定与
<concepts>相关)。 LegacyIterator is a name。我不知道它为什么会这样命名,但它只是一个名字。 -
顺便说一句,除了OP做出的混淆假设之外,我认为这是一个很好的问题。命名肯定有原因(已经在答案中提到),我认为人们可能会对这种命名感到困惑,特别是因为没有容易获得的解释。