一个关于字符串的数组类CStringArray的用法

      众所周知,很多开发语言都会用到字符串,而且关于字符串会有很多复杂的处理过程,今天我就谈谈我发现的一个很有意思的类给大家,这个类用起来很方便,它是CStringArray,如果要用它需要加上头文件#include ,如果在控制台程序中,则要加在#"stdafx.h"中,否则会出错。

     我用的vs2013编译器,现在就将这个一些应用展示出来:

CObArray::Add
将元素添加到数组的末尾;如果需要增加数组
CObArray::Append
将另一个数组追加到该数组;如果需要增加数组
CObArray::Copy    将另一个数组复制到该数组;如果需要增加数组
CObArray::ElementAt    返回对数组中元素指针的临时引用
CObArray::FreeExtra    释放当前上限以上的所有未使用内存
CObArray::GetAt    返回给定索引处的值
CObArray::GetCount    获取该数组中的元素数
CObArray::GetData    允许访问数组中的元素。可以为空
CObArray::GetSize    获取该数组中的元素数
CObArray::GetUpperBound    返回最大的有效索引
CObArray::InsertAt    在指定索引处插入一个元素(或另一个数组中的所有元素)
 CObArray::IsEmpty     判断该数组是否为空
 CObArray::RemoveAll     移除该数组所有元素
 CObArray::RemoveAt     移除指定位置的元素
 CObArray::SetAt     设置给定索引的值;数组不允许增长
 CObArray::SetAtGrow     设置给定索引的值;如果需要增加数组
 CObArray::SetSize    设置该数组中要包含的元素的数量

void print_data(CStringArray &array)
{
    int arraysize = array.GetSize();//获取元素个数
    //int array1size = array.GetCount();//获取元素个数
    for (int i = 0; i < arraysize; i++)
    {
        printf("%s", array.GetAt(i));
    }
}

int _tmain(int argc, _TCHAR* argv[])
{

    CStringArray array;
   array.Add("beijing|");
   array.Add("shanghai|");
   array.Add("guangzhou|");
   printf("操作前...\n");
   printf("第一个数组:");
   print_data(array);
   printf("\n");
    printf("第二个数组:");
    CStringArray array1;
    array1.Add("nanjing|");
    array1.Add("chongqing|");
    array1.Add("fuzhou|");

    print_data(array1);
    printf("\n");
    
    array.Append(array1); //追加数组
    //array.Copy(array1); //数组拷贝
    printf("操作后...\n");
    printf("合并后:");
    for (int i = 0; i < array.GetSize(); i++)
    {
        printf("%s", array.GetAt(i));
    }
    printf("\n");
    //getdata使用,获取特定位置元素
    printf("获取指定位置元素:");
    CString *pstr = array.GetData();
    pstr += 5;
    printf("%s", pstr->GetString());
    printf("\n");
    //获取最大有效索引
    printf("本数组最大有效索引:");
    int nIndex = array.GetUpperBound();
    printf("%d", nIndex);
    printf("\n");

    //在指定位置插入一个元素
    printf("插入特定元素:");
    if (array.IsEmpty())//判断数组是否为空
    {
        return 0;
    }
    array.InsertAt(1, "xian|");
    print_data(array);
    printf("\n");
    printf("数组元素个数是%d",array.GetCount());
    printf("\n");

    printf("移除指定位置的元素:");
    array.RemoveAt(1);
    print_data(array);
    printf("\n");
    printf("数组元素个数是%d", array.GetCount());
    printf("\n");

    printf("设置给定索引的值,数组不允许增长:");
    array.SetAt(2, "changsha|");
    print_data(array);
    printf("\n");
    printf("数组元素个数是%d", array.GetCount());
    printf("\n");

    printf("设置给定索引的值,允许增加数组:");
    array.SetAtGrow(7,"dalian|");
    print_data(array);
    printf("\n");
    printf("数组元素个数是%d", array.GetCount());
    printf("\n");

    printf("更改当前数组长度:");
    array.SetSize(10);
    printf("数组元素个数是%d", array.GetCount());
    printf("\n");

    printf("设置或获取在指定索引处的元素:");
//    CString strElement = array.operator[](2) +"yinchuan";
//    printf("指定元素是%s", strElement);
    array.operator[](2) = "yinchuan|";
    print_data(array);
    printf("\n");
    printf("数组元素个数是%d", array.GetCount());
    printf("\n");

    CString strElement = array.operator[](2);
    printf("指定元素是%s", strElement);
    printf("\n");

    printf("返回对数组中的某一元素指针的临时引用:");
    CString strEle = array.ElementAt(4);
    printf("返回指定元素是%s", strEle);
    printf("\n");
    
    return 0;

}

最后再附上一些相关的扩展链接:https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-6.0/aa246098(v=vs.60)

你可能感兴趣的:(C++,STL容器,C++)