c – 为什么需要使用ForwardIterator建模DefaultConstructible?

我似乎找不到任何标准的算法来证明认构造一个ForwardIterator的需求.

有没有什么实际的理由呢,还是安全的呢?

解决方法

在这里,为了简化对这两种标准算法和客户端用户的这些迭代器的使用.

例如(记住RandomAccessIterator是ForwardIterator的子类型):

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

如果它们不是认构造的,那么您需要将它们分配给第一个或最后一个,以供编译.

您不需要将其设置为认值.任何使用这种未初始化的迭代器是未定义的.不是添加一些检查是不明智的,特别是在调试版本中.

而不,你不应该抛出认构造函数.它在技术上是一致的,但是许多算法将意外失败.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...