gpt4 book ai didi

c++ - 为什么 std::reverse 需要双向迭代器?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:33:51 25 4
gpt4 key购买 nike

为什么 std::reverse(c.begin(), c.end()) 要求底层容器 c 提供双向迭代器?

事实上这意味着 (multi-)map, (multi-)set,但是那些不能逆转,当然,因为它们是有序的。唯一的另一个 bi-dir 容器是 list 但它有自己的成员函数 .reverse()

这意味着可以在 arrayvectordeque 上应用 std::reverse < em>随机访问。

那么,为什么不“诚实”地说:需要随机访问,或者使用成员函数呢?

最佳答案

您甚至不需要使用用户定义的迭代器,您可以在自己的问题中提供答案。

The only other bi-dir container is list but that one has its own member function .reverse().

然而,该成员函数反转了整个列表。 std::reverse 通过传递除 list.begin()list.end() 之外的其他迭代器,仅允许反转列表的一部分>.

关于c++ - 为什么 std::reverse 需要双向迭代器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39966156/

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