gpt4 book ai didi

c++ - 为什么需要 ForwardIterators 来建模 DefaultConstructible?

转载 作者:可可西里 更新时间:2023-11-01 16:10:26 26 4
gpt4 key购买 nike

我似乎找不到任何标准算法来证明默认构造 ForwardIterator 的要求。

是否有任何实际原因,或者我可以安全地忽略它?

最佳答案

对于标准算法和客户端用户来说,它是为了简化这些类型的迭代器的使用。

例如(记住 RandomAccessIteratorForwardIterator 的子类型):

template <class RandomAccessIterator>
void sort ( RandomAccessIterator first, RandomAccessIterator last )
{
RandomAccessIterator pivot, i, j;
//do your sorting algorithm
}

如果它们不是默认可构造的,您需要将它们分配给 firstlast 才能编译。

您不需要将其设置为默认值。未定义对此类未初始化迭代器的任何使用。并不是说添加一些检查是不明智的,尤其是在调试版本中。

不,你不应该抛出默认构造函数。它在技术上是合规的,但许多算法会意外失败。

关于c++ - 为什么需要 ForwardIterators 来建模 DefaultConstructible?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10396278/

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