下面链表的创建中,,插入和删除操作为啥返回值是对象的引用,为啥不是返回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保持一致……而不是这玩意


    推荐阅读