gpt4 book ai didi

c++ - C++ 标准库算法是否使用 std::advance

转载 作者:太空狗 更新时间:2023-10-29 21:36:25 26 4
gpt4 key购买 nike

我一直没能找到合适的来源。执行<algorithm>中的所有算法 header 使用 std::advance增加(也可能减少)迭代器?

还有另一个相关的跟进 - 我看到了 RandomAccessIterator 概念的 cppreference 页面 (http://en.cppreference.com/w/cpp/concept/RandomAccessIterator),但它没有解决迭代器类别具有成员别名的要求。如果迭代器类没有名为 iterator_category 的成员 typedef别名为 random_access_iterator_tag但支持在 cppreference 页面 ( http://en.cppreference.com/w/cpp/concept/RandomAccessIterator ) 中针对 RandomAccessIterator 提到的操作,C++ 标准库是否假定迭代器是随机访问迭代器?

注意 我是想引用 C++ 标准来问这个问题。即“标准对此有何看法?”

最佳答案

该标准未明确指定 C++ std 算法的实现。它指定行为,有时指定特定操作的执行次数。这会使实现者几乎没有实际选择,但并未明确指定。

据我所知,

std::advance 从未在标准中被称为由另一种算法调用。这意味着它可以在特定算法的特定实现中使用或不使用。

指定了 std::advance 的效果。在其他算法指定其操作计数的情况下,为了调用 std::advance,它不得破坏其保证。

简而言之,允许而不是必须使用它。

关于c++ - C++ 标准库算法是否使用 std::advance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40445023/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com