Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 既然std::vector::iterator已经过时,那么获得std::vector迭代器的正确/推荐方法是什么?_C++_C++ Standard Library - Fatal编程技术网

C++ 既然std::vector::iterator已经过时,那么获得std::vector迭代器的正确/推荐方法是什么?

C++ 既然std::vector::iterator已经过时,那么获得std::vector迭代器的正确/推荐方法是什么?,c++,c++-standard-library,C++,C++ Standard Library,发件人: 它不应该再被使用了吗? 获取std::vector迭代器的正确/推荐方法是什么?我们是否应该只使用自动?说旧版并不意味着它不受支持或不受欢迎。它只是意味着它不是新的,因此使用术语legacyLegacy前缀仅用于区分C++20的RandomAccessIterator和先前存在的LegacyRandomAccessIterator(根据C++,两者都是“概念”)。我不认为标准中实际提到了术语Legacy。Legacy并不是您认为它的意思。你是从哪里得到这样的假设的:它暗示了一些不赞成的

发件人:

它不应该再被使用了吗?
获取
std::vector迭代器的正确/推荐方法是什么?我们是否应该只使用
自动

旧版
并不意味着它不受支持或不受欢迎。它只是意味着它不是新的,因此使用术语
legacy
Legacy
前缀仅用于区分C++20的
RandomAccessIterator
和先前存在的
LegacyRandomAccessIterator
(根据C++,两者都是“概念”)。我不认为标准中实际提到了术语
Legacy

Legacy并不是您认为它的意思。你是从哪里得到这样的假设的:它暗示了一些不赞成的东西?@Fureeish“Deprecated意味着它将在不久的将来被删除,Legacy意味着它将由于向后兼容或其他原因而保留下来。这两种情况都意味着它们不应该被新代码使用。”第一个结果是谷歌搜索到一个如此的答案。这个问题与Java有关,标准中已经提到了很多定义的实现。这并不意味着你不能在C++代码中安全地使用这些信息。这是你的困惑——你读了java的答案,而不是C++。它也是关于API的,而不是一个概念的名称(不一定与
相关)。我不知道它为什么这样命名,但它只是一个名字。顺便说一下,除了OP提出的一个混乱假设之外,我认为这是一个好问题。命名(已经在回答中提到)肯定有原因,我认为人们可能会被这种命名弄糊涂,特别是因为没有容易理解的解释。术语“遗留”没有出现在标准中。这是cppreference.com的发明。我认为一个不那么令人困惑的术语应该是“经典”。经典没有什么不对的。是的,你是对的,我做了一些挖掘,我相信网站运营商这样做是为了分离维基页面,我可能错了。
iterator    LegacyRandomAccessIterator
const_iterator  Constant LegacyRandomAccessIterator