如何定义自己的迭代器
答案:2 悬赏:50 手机版
解决时间 2021-12-31 18:25
- 提问者网友:我没有何以琛的痴心不悔
- 2021-12-30 23:25
如何定义自己的迭代器
最佳答案
- 五星知识达人网友:掌灯师
- 2021-12-30 23:34
基本上iterator必须做两件事情
1)必须指向某物
2)他必须能够遍历任何一个有效区间。一旦定义了operator* operator++通常剩下的行为就比较简单了。
必须确定iterator被正确的定义为constant或者mutable。这是常犯的错误之一。不过input iterator不在乎这一点,因为具有只读性。outputIterator具有只写性。
对于其他的类型的iterator就不一样了
定义自己的Iterator时,必须定义五个嵌套类型,iterator_category、value_type、difference_type、pointer和reference。
1)必须指向某物
2)他必须能够遍历任何一个有效区间。一旦定义了operator* operator++通常剩下的行为就比较简单了。
必须确定iterator被正确的定义为constant或者mutable。这是常犯的错误之一。不过input iterator不在乎这一点,因为具有只读性。outputIterator具有只写性。
对于其他的类型的iterator就不一样了
定义自己的Iterator时,必须定义五个嵌套类型,iterator_category、value_type、difference_type、pointer和reference。
全部回答
- 1楼网友:轻雾山林
- 2021-12-31 00:10
谢谢了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯