当前位置: 首页 > news >正文

MFC CList 类的使用

MFC提供CList 类;

类CList支持可按顺序或按值访问的非唯一对象的有序列表;CList 列表与双链接列表行为相似;
类型POSITION的变量是列表的关键字;可使用POSITION变量作为循环因子来顺序遍历列表,作为书签来保存位置;

CList 类的头文件是 <afxtempl.h>;

CList类的成员

构造函数
    构造一个空的有序列表  

GetHead 返回列表的标题元素(不能为空)  
GetTail 返回列表的末尾元素(不能为空)  

RemoveHead 从列表标题中移走元素  
RemoveTail 从列表末尾移走元素  
AddHead 添加一个元素(或另一个列表的所有元素)到列表标题(生成新的标题)  
AddTail 添加一个元素(或另一个列表的所有元素)到列表尾部(生成新的尾部)  
RemoveAll 从列表中移走所有元素  

GetHeadPosition 返回列表标题元素的位置  
GetTailPosition 返回列表尾部元素的位置  
GetNext 获取用于遍历下一个元素  
GetPrev 获取用于遍历的前一个元素  

GetAt 在指定位置上获得元素  
SetAt 在指定位置上设置元素  
RemoveAt 从列表中删除一个由位置确定的元素  

InsertBefore 在指定位置前插入一个新的元素  
InsertAfter 在指定位置后插入一个新的元素  

Find 获得由指针值确定的元素位置  
FindIndex 获得由基于零的索引指定的元素位置  

GetCount 返回此列表中的元素数  
IsEmpty 检测空列表的情况(没有元素)

下面看一下存储CString对象和CPoint对象的遍历;

void CCltestView::OnDraw(CDC* pDC)
{CCltestDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereCList<CString ,CString&> list;int i=0;CString str1="hello"; CString str2="world"; CString str3="AAA"; CString str4="BBB"; list.AddTail(str1); list.AddTail(str2); list.AddTail(str3); list.AddTail(str4); POSITION pos = list.GetHeadPosition(); while(pos!=NULL){ pDC->TextOut(100,100+i*30,list.GetNext(pos));i = i+1;}CString mystr;CPoint mypt;CList <CPoint , CPoint &> listPoint;for (int Index = 0; Index < 10; Index++){CPoint pt(Index , Index);listPoint.AddTail(pt);}i=0;POSITION pi = listPoint.GetHeadPosition();while(pi!=NULL){mypt = listPoint.GetNext(pi);mystr.Format("%d,  %d", mypt.x, mypt.y);pDC->TextOut(250,50+i*30,mystr);i=i+1;}
}

运行如下;

 

http://www.lryc.cn/news/97472.html

相关文章:

  • iptable防火墙
  • 二、SQL-5.DQL-9).执行顺序
  • Ubuntu通用镜像加速配置
  • Linux安装部署Nacos和sentinel
  • Vue3+ElementPlus+TS实现右上角消息数量实时更新
  • 去除重复字母(力扣)贪心 + 队列 JAVA
  • Spring,SpringBoot,Spring MVC的区别是什么
  • 在CSDN学Golang云原生(Docker镜像)
  • Hive窗口函数大全
  • 达闼面试(部分)(未完全解析)
  • Makefile常用函数
  • mysql的一些知识整理
  • 修改密码和再次确认密码的js和element-ui的使用
  • 蓝桥杯专题-真题版含答案-【垒骰子_动态规划】【抽签】【平方怪圈】【凑算式】
  • kubernetes调试利器——kubectl debug工具
  • 浅谈es5如何保证并发请求的返回顺序
  • 深入浅出Pytorch函数——torch.squeeze
  • 【LeetCode】121.买卖股票的最佳时机
  • 【力扣】74. 搜索二维矩阵 <二分法>
  • Spring Task+Cron表达式
  • 你们公司的【前端项目】是如何做测试的?字节10年测试经验的我这样做的...
  • 华为战略方法论:BLM模型之关键任务与依赖关系
  • django的ORM模板的fake更新
  • 239.滑动窗口最大值
  • Redis基础原理
  • .NET 5 Web API 中JWT详细教程:保护你的Web应用
  • MyBatis-Plus自动填充
  • Dubbo服务提供者失效踢出原理解析
  • el-select下拉框处理分页数据,触底加载更多
  • 如何设计自动化测试脚本?一文5个步骤带你从0到1设计