gpt4 book ai didi

c++ - 为什么 reverse_iterator 有一个默认的构造函数?

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

我刚刚学习 STL,reverse_iterator 让我感到困惑。它有一个默认构造函数,但我不知道如何使用它。我试过:

reverse_iterator<int*> r{};
r --;

然后程序崩溃了。我认为这种用法没有意义,而且很容易导致崩溃,那么为什么允许使用默认构造函数呢?

最佳答案

std::reverse_iteratorbidirectional iterators ,它们有一个明确的要求,即它们是可默认构造的。

至于why bidirectional iterators are default-constructible ,这主要是因为几乎可以肯定它们实现起来很简单,并且提供这样的保证使算法更容易实现。

写像 int* p = nullptr; 这样的东西*p; 本身就是 UB,它违反了 p 可解引用的前提条件,让适配器“采用”这些行为是很自然的。

关于c++ - 为什么 reverse_iterator 有一个默认的构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46266086/

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