精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
锐英源精品开源,禁止转载和任何形式的非法内容使用,违者必究
有一个非法操作是因为对下标使用不合适造成的,在动态数组里面没有项,就用中括号向项赋值导致了非法操作,要想避免此问题 在赋值前先添加项。下面结合CWordArray进行演示,演示前先说明下CWordArray类。
MFC的泛型数组类支持的数组类似于C++中的常规数组,可以存放任何数据类型。C++的常规数组在使用前必须将其定义长度,这样才能够容纳所有可能需要的元素,而MFC泛型数组类创建的对象可以根据需要动态地增大或减小,数组的起始下标是0,而上限可以是固定的,也可以随着元素的增加而增加。
CWordArray数组类的变量类型是16位无符号整数WORD类型,变量数值范围为0-65535,头文件是Afxcoll.h。
边界 操作
GetSize() 返回数组大小 FreeExtra()释放已申请但没有使用的多余内容
GetUpperBound() 返回数组上界 RemoveAll()清空数组
SetSize() 设设置数组长度
元素访问 增长数组
GetAt() 返回数组中指定位置的值 SetAtGrow 设置数组的增长幅度
SetAt() 设置数组中指定位置的值 Add 向数组添加元素
ElementAt 返回数组中指定位置的临时引用 Append 将其它数组添加到本数组
GetData 以指针形式返回数组 Copy 将其它数组复制到本数组
插入删除 操作符
InsertAt 向数组插入元素或其它数组 operator [] 支持以数组方式访问
RemoveAt 从数组中删除元素
CWordArray arr;
arr [0] = value;//在数组中没有项时会出现非法操作
考虑到动态数组中没有项的时候是不能用中括号访问动态数组下标的方式进行直接赋值的,所以在赋值之前先添加项。
arr.Add(j);