自绘树形控件,有什么好的保存节点的方法吗 本帖最后由 geniusice18 于 2011-08-10 09:07:24 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 std::map<>这样查找会快一些! 滚动条大小等可以考虑动态计算,即先确定值,不用每次都计算,只计算插入,删除,伸缩,扩展对高度的影响,调整滚动条。数据结构的操作,查找不会慢,10000条数据而已,可能慢在你的绘制上。最好不要想自己做一套,参考MFC的几个函数getfirstvisible,getnextvisible. 内存中也用树。每个节点保存parent, previous sibling, next sibling, first child 可以用map<树根,map<子树> >来建立内存树 就是:struct TreeItem{ CString strText; list<TreeItem*> SubItems;}; 可以用两个容器来保存显示项目:1. map保存显示项目的指针2. vector也保存显示项目的指针直接访问的话用map,很快排序的话直接排vector,排序算法可以自己写显示用vector就是添加和删除显示项麻烦些,要管理两个容器 可以用两个容器来保存显示项目:1. map保存显示项目的指针2. vector也保存显示项目的指针直接访问的话用map,很快排序的话直接排vector,排序算法可以自己写显示用vector就是添加和删除显示项麻烦些,要管理两个容器容器嵌套使用是一个很危险的事情,容器的大小是系统自动管理的,起始地址可能会发生改变 关于CtrlTree设置单独Item颜色的问题 基于tdi建立的流量统计 请教高手 再问CMFCVisualManager 分割屏幕的问题 新手请教:高手赐教如何用dll连接数据库 女生考场内小便尴尬了谁 羞辱了谁 请问QQ中,接受输入消息的那个是什么控件啊? CScrollView拖动滚动条时屏幕没有完全刷新还留有断断续续的点(在一条直线上),为什么? 可以使用 CreateFileMapping 映射硬盘吗?急急 控制MCI设备音量的问题 探求软件发展的未来!
这样查找会快一些!
数据结构的操作,查找不会慢,10000条数据而已,可能慢在你的绘制上。
最好不要想自己做一套,参考MFC的几个函数getfirstvisible,getnextvisible.
{
CString strText;
list<TreeItem*> SubItems;
};
可以用两个容器来保存显示项目:
1. map保存显示项目的指针
2. vector也保存显示项目的指针直接访问的话用map,很快
排序的话直接排vector,排序算法可以自己写
显示用vector就是添加和删除显示项麻烦些,要管理两个容器
可以用两个容器来保存显示项目:
1. map保存显示项目的指针
2. vector也保存显示项目的指针直接访问的话用map,很快
排序的话直接排vector,排序算法可以自己写
显示用vector就是添加和删除显示项麻烦些,要管理两个容器
容器嵌套使用是一个很危险的事情,容器的大小是系统自动管理的,起始地址可能会发生改变