加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 06:00:46 所属栏目:百科 来源:网络整理
导读:我似乎找不到任何标准的算法来证明默认构造一个ForwardIterator的需求. 有没有什么实际的理由呢,还是安全的呢? 解决方法 在这里,为了简化对这两种标准算法和客户端用户的这些迭代器的使用. 例如(记住RandomAccessIterator是ForwardIterator的子类型): temp
我似乎找不到任何标准的算法来证明默认构造一个ForwardIterator的需求.

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

解决方法

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

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

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读