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);
复制代码

 

 

 

 

 

 

 

 

 

posted @   天子骄龙  阅读(414)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!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++异常处理
点击右上角即可分享
微信分享提示

目录导航