大佬教程收集整理的这篇文章主要介绍了c – end()以什么方式指向非连续容器中的“一个接一个”?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我理解正确:
> std :: forWARD_list只知道它的第一个元素,每个列表条目只知道下一个元素.
>列表在内存中是不连续的
> a.begin()== a.end()对于空容器a为真
> end()应该是一个指向’一个超过容器结尾的’的迭代器
因此,在对forWARD_lists进行一些循环时,我想知道:
在forWARD_list的情况下,end()如何具有恒定的时间复杂度(即,不会超过’结束一个’)?
我查看了forWARD_list.cpp并找到了声明
iterator end() _NOEXCEPT {return iterator(nullptr);}
这对于恒定的时间要求是有意义的,但不适用于与上述第4点相对应的 – 公认的规则 – 规则.
所以仍有一些问题:
>什么是’一个接一个’应该意味着非连续存储?
> nullptr如何符合’一个接一个’的定义?
>如果MyForWARDList为空,MyForWARDList.begin()== MyForWARDList.end()如何为true?
>为什么不将end()始终定义为nullptr?
以上是大佬教程为你收集整理的c – end()以什么方式指向非连续容器中的“一个接一个”?全部内容,希望文章能够帮你解决c – end()以什么方式指向非连续容器中的“一个接一个”?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。