不好意思,我知道你想问什么,但是我自己也只是刚刚才开始学C++,还没学到这一部分,完全不能理解这个模板到底干什么用。
所以我才给你把问题转移到C++论坛板块来。我要是懂的话,在就在算法板块给你解决了。不好意思了。我学编程到现在还不满一年,能力非常低,“版主”是个意外。。没多少干货的。
----------------------------------
目前来说,通过rjsp版主的举例说明,我好像有点明白了。模板貌似就一个fun()函数,里面执行了若干操作(比如把元素自增)。我们可以通过反复调用这个fun()函数来达到对不同对象的机械性重复操作。
but,专门搞这么一个template<typename>做这样的事,,感觉不如直接在for()循环里面写代码来着容易让人理解呢。
应该不至于专门设计这样一个无聊的语法来干这么无聊的事吧。我第一次看到C++的for each 循环的时候,觉得很赞,他比C语言的for语句省了一些东西,能够自己主动去执行区间判定、迭代等等,很棒。
没理由在搞一个template<>来替代for each 。
就楼主给出的树上的截图来看,重载了increase() 为元素位移,但是我蛮质疑这个位移有没有机制去限制它不会越界?我学C出身的,所以会特别在意指针问题。我怀疑楼主的那个书上的代码存在越界的隐患,甚至这个越界还是个无限循环,木得终止,只待奔溃。
很多人很多地方都说C++是门学不精的手艺,所以我感觉这个template估计就是其中一个,至少他不会那么肤浅去替代for each,他应该有他的应用场景。应该不这么用吧。(猜的,编程是门科学,用猜的,很不礼貌。但,能力有限...)
[此贴子已经被作者于2016-9-23 17:00编辑过]