gpt4 book ai didi

c++ - begin()vs rbegin()如何实现?

转载 作者:行者123 更新时间:2023-12-02 10:00:54 27 4
gpt4 key购买 nike

在下图中,我正在使用相同类型的迭代器,这意味着相同的operator ++实现,因此编译器如何知道应获取下一个值还是前一个值...?
enter image description here

最佳答案

首先,您的图片包含错误。如您所见here, vector 的反向迭代器类型是std::reverse_iterator<iterator>,它使用模板 std::reverse_iterator<T> 。因此beginrbegin的返回值并不相同(我也不认为它们可以相互转换)。
但是实际上这甚至不是问题,您可以实现

struct iter {
bool reverse;
pointer ptr;

iter& operator++() {
if(reverse) --ptr;
else ++ptr;
return *this;
}
};
但是将它们分隔开确实是更好的选择。

关于c++ - begin()vs rbegin()如何实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62628453/

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