MFC-CStringArray
CStringArray类可以用来存储CString类型的对象,而且它的容量是可以动态增加的
CStringArray是编译器定义的类型!可以进行一些(如:访问、增、删、改)等操作
集中单个字符串的操作使用CString,集中一批字符串的管理使用CStringArray
一个是动态,一个静态,CStringArray是动态的,数组长度可以动态改变, 内部一个是链表, 另一个可能是申请好的连续的内存块
继承关系:class CStringArray : public CObject
注意事项:
在使用数组之前,请使用SetSize来建立它的大小并为它分配内存。如果你不使用SetSize,将元素添加到数组中将使其经常被重新分配和复制。频繁的重新分配和复制效率低下,可以分割内存
包含头文件
#include <Afxcoll.h> //包含此头文件,即可使用CStringArray
CStringArray suzu;//构造空数组 CStringArray suzu1; suzu.SetSize(20);//设置数组大小 /* 参数1:数组大小(元素数)。 必须大于或等于 0 */ suzu.Add(_T("0001")); //将一个元素添加到数组的末尾;如果需要,则扩展该数组 suzu.Add(_T("0002")); suzu1.Add(_T("1001")); suzu1.Add(_T("1002")); suzu.Append(suzu1);//将数组suzu1追加到数组suzu中;如有必要,将扩展该数组 CStringArray suzu2; suzu2.Copy(suzu1); //复制数组;如有必要,则扩展该数组 int i = suzu1.GetCount(); //获取元素个数 CString str; str.Format(_T("i=%d\r\n"), i); ::OutputDebugString(str); i = suzu1.GetSize();//获取元素个数 str.Format(_T("i=%d\r\n"), i); ::OutputDebugString(str); str = suzu1.GetAt(1);//获取指定序号的元素值 ::OutputDebugString(str); BOOL b = suzu1.IsEmpty();//数组是否为空 if(b) { ::OutputDebugString(_T("空数组\r\n")); } else { ::OutputDebugString(_T("不是空数组\r\n")); } suzu1.InsertAt(1, _T("1010"));//指定序号处插入元素 suzu.RemoveAll();//从此数组中移除所有元素 suzu1.RemoveAt(1);//移除指定索引处的元素 suzu1.SetAt(1,_T("abab"));//设置给定索引的值;不允许对该数组进行扩展 suzu1.SetAtGrow(5, _T("mnmnmn")); //设置给定索引的值;根据需要扩展该数组 i=suzu1.GetUpperBound();//返回最大的有效索引 str.Format(_T("i=%d\r\n"), i); ::OutputDebugString(str);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
2022-03-25 halcon-create_ncc_model创建NCC模板
2019-03-25 C++异常处理