暂时在heap上留个坑
来源:互联网 发布:java数据库编程题型 编辑:程序博客网 时间:2024/05/17 00:54
在写smart_heap的时候,其中函数首先要将迭代器的difference_type和value_type萃取出来,但是为什么要萃取出value_type,他是这么用的(下面代码是我自己写的,大致是这个意思):
template<class RandomAccessIterator, class Distance, class T> void make_heap_aux(RandomAccessIterator first, RandomAccessIterator last, Distance*, T*) { if(last - first < 2) //只有一个元素,不需要make heap return; //len表示vector中最后一个元素的下标 Distance len = last - first - 1; //左后一个也节点对应的父节点即是这个树中的最后一个非叶子节点 Distance parrent = (len - 1)/2; while (parrent >= 0) { //我对这个问题不是很清楚,准备看一下《C++ Template》看看是否有相关解释 _pop_heap(first, len, parrent, T(*(first + parrent))); parrent--; } }
就是在_pop_heap调用函数那里,T((first+parrent))这里,为什么非要将这个重载返回的东西强制转换成T类型的呢?我还不太明白,是不是因为operator*返回的是reference类型的,然后无法准确调用这个_pop_heap了呢?
暂时留个坑,明后天来解答。
//———————-2015/7/15下午分割线————————————-
现在我知道肯定不是我上午的原因,因为*operator只是返回了T&引用,这个本体还是T类型的,那么它就是可以调用_pop_heap这个函数,看来这个坑要等一等了。。
0 0
- 暂时在heap上留个坑
- 暂时
- 暂时
- 暂时
- 暂时
- android Bitmap分配在java heap还是native heap
- 在程序中暂时禁止右键菜单函数
- RSI背离在判断暂时反转中的应用
- 在REXX中使程序暂时等待的方法
- 找到组织了,暂时就在这里安营扎寨吧~
- 暂时放在这了,感性趣的小游戏
- 暂时在北京有了自己的暖和小窝
- 时间过的很快,在此暂时做个总结
- Line在泰国推出类YouTube视频服务 暂时免费
- chrome暂时无法在Fedora25/Wayland下运行的解决方法
- Heap
- Heap
- heap
- Git命令大全
- Unity3d-反编译C#和提取资源
- SQLDMO注册
- JAXB中的标注
- Codeforces 558E A Simple Task (计数排序+线段树优化)
- 暂时在heap上留个坑
- poj3281
- ATL结构分析
- GRE写作必备句型
- 如何启动Tomcat服务器
- Android使用反射机制设置ListView的默认焦点
- Decode Ways
- hudson插件介绍
- 那些年我们一起清除的浮动