EE_DSnP 板


转录一个大家也都可能遇到的问题... 如果你有遇到 : compile error 写说 : 从类型 「const BSTree<AdtTestObj>* const」 到类型 「BSTree<AdtTestObj>*」 的 ? : 换无效 : 初始化引数 2,属於 「BSTree<T>::iterator::iterator(BSTreeNode<T>*, : BSTree<T>*) [with T = AdtTestObj]」 可能有小雷,不想看请按左键离开 =================================================== 嗯, begin() and end() 不是 const 的确不太好... 要是我可能会龟毛的打死也不把 const 拿掉... XD 其实 iterator 里去存 _tree 也不是很有效率的写法 (我猜得没错的话, 每次 li++, li-- 都要 find 一下?)... 不过可能是比较好写的作法. 所以我想你的写法是 OK 啦, 要解决你的问题, 你可以试试: iterator begin() const { if(_root==0) return iterator(0, const_cast<BSTreeNode<T>*>(this)); BSTreeNode<T>* temp = findMin(_root); return iterator(temp, const_cast<BSTreeNode<T>*>(this)); } : 我的binary search tree已经写完了也测试成功 : 但是之前在写的过程中有遇到一个问题,我觉得我的解决方式不是很好 : 因此想请问老师: : 我的 BSTree::iterator 内有两个 private data member: : BSTreeNode<T>* _node; : BSTree<T>* _tree; : constructor 则是: : iterator(BSTreeNode<T>* n= 0, BSTree<T>* p= 0): _node(n), _tree(p) {} : iterator(const iterator& i) : _node(i._node), _tree(i._tree) {} : 但是这样在 begin()、end()的地方会发生compile error: : iterator begin() const { if(_root==0) return iterator(0, this); : BSTreeNode<T>* temp = findMin(_root); : return iterator(temp, this); } : iterator end() const { return iterator(0, this); } : compile error 写说 : 从类型 「const BSTree<AdtTestObj>* const」 到类型 「BSTree<AdtTestObj>*」 的转 : 换无效 : 初始化引数 2,属於 「BSTree<T>::iterator::iterator(BSTreeNode<T>*, : BSTree<T>*) [with T = AdtTestObj]」 : 因此我把constructor改成 : iterator(BSTreeNode<T>* n= 0, const BSTree<T>* p= 0): _node(n), _tree(p) {} : 且把data member改成 const BSTree<T>* _tree; : 这样就不会有error : 但是我在overload operator=的时候 需要把 传进去的iterator的_tree 一起copy : 如此才能让 : BSTree::iterator li; : li = bst.begin(); : 是合法的 : (虽然在老师的adtTest.h里面好像没有这种问题 : 因为 AdtType<AdtTestObj>::iterator li = _container.begin(); : 应该是呼叫copy constructor? ) : 因此 iterator 的 data member (BSTree<T>* _tree;) 不应该是const : 但是不加const compile又不会过 (在costructor会有compile error) : 後来我的解决方法是: : 维持原本的写法 : 把 begin() 、 end()的 const 去掉 就OK了 : 但是以标准来说这两个应该要是const method吧 : 不知道有没有比较好的解决方法呢? : 还是其实我的理解有不对的地方? : 非常谢谢老师喔~ -- ※ 编辑: ric2k1 来自: 61.224.42.19 (12/04 22:09)
1F:→ ysho:const BSTree<T>* _tree是说_tree指到的东西是const 12/04 22:41
2F:→ ysho:不代表_tree本身是const,所以overload operator=是没问题的 12/04 22:43
3F:→ ilway25:推楼上 12/04 23:27
4F:推 herbert570:我也在 const 上花了一些时间.... 12/05 01:27
5F:→ herbert570:请爱用 BSTree<T> const *, pointer to const BSTree 12/05 01:27
6F:推 a3785lexx:我怎麽都没想到要直接把整棵Tree给存起来! 12/05 04:33







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草
伺服器连线错误,造成您的不便还请多多包涵!
「赞助商连结」






like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP