C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了为什么c容器没有实现擦除(reverse_iterator位置)?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我查看了一些C容器(vector,deque,list,map,set),发现它们都没有实现
erase(reverse_iterator position)

有一种方法可以从reverse_iterator获取迭代器,如answer中所述.

但是为什么上面的容器没有用reverse_iterator参数实现擦除成员函数

迭代器和reverse_iterator之间是否有任何显着差异,这使得这样的实现很难或者由于其他原因而没有实现?

解决方法

几乎所有容器函数都可以提出同样的问题:为什么不为反向迭代器实现它?答案可能是一个简单的事实,即反向迭代器可以通过base()调用轻松转换为常规迭代器.将base()的负担放在用户身上更有意义,而不是通过为每个单独的一个实现“反向”版本几乎使容器的功能数量增加一倍.

有人可以说,它打破了通过反向迭代器处理这些容器的外部环境中容器的“普遍性”.但是从一开始,反向迭代器被设计为“不同的”,并且在除了最简单的上下文之外的所有情况下都不一定与普通迭代器兼容.

大佬总结

以上是大佬教程为你收集整理的为什么c容器没有实现擦除(reverse_iterator位置)?全部内容,希望文章能够帮你解决为什么c容器没有实现擦除(reverse_iterator位置)?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。