下面链表的创建中,,插入和删除操作为啥返回值是对象的引用,为啥不是返回void呢
返回self的目的是可以开火车式调用,list.insert(1,1).insert(2,3)……但这样写不好,把多步操作凑在一行,代码是紧凑了,但调试起来会封的。标准做法应该是返回迭代器
■网友
恕我直言这本书可能是假书。这种半泛型半不泛型的是什么东东?构造函数还搞出个T a,那我要不传数组呢?insert 和 delete(erase)最佳实践应该返回 iterator。返回self跟返回void 有什么区别? 难道写成 l = l.insert(1, 1) 这样看起来舒服一点?你想要获取这个链表,除非你想的是把这个链表赋值给另一个object,那用 构造 或者operator= 呀!所以相对来说 返回 iterator更有意义,比如我在i 和 j 位置插入元素,我想输出这两个插入点之间的元素,那你要怎么写?list的iterator不难写,而且还是单链表
■网友
你写成void也不犯法。。。只不过少了一个获取链表的渠道罢了
■网友
推荐自定义链表和stl保持一致……而不是这玩意
推荐阅读
- 求助。php无限极分类。递归。咋数出来。每一个分类下面的小分类个数啊。希望有个demo谢谢!
- 看了下面的一些回答,感觉这个问题容易引起骂战,还是改掉算了
- json下面代码字符编码的规则是啥
- 咋对下面的程序提高运算速度
- 清华计算机大类的新生选课有啥推荐和建议呢
- 机械设计专业,中车下面子公司和自己转IT,目前大四,选哪个
- 下面这行代码是啥意思
- 求助,下面的MATLAB程序应该咋修改
- |风油精是家中常备药,把风油精滴在“下面”,会有什么后果?
- 光猫下面接了一台交换机,交换机下面接了一台路由器,请问怎样实现交换机下面的电脑访问路由器硬盘里的内容
