在 MFC(Microsoft Foundation Classes)中,CWordArray::FreeExtra 是用于释放数组多余空间的方法。当数组的大小超过实际元素的数量时,可能会分配一些额外的内存空间以提高性能。FreeExtra 方法用于释放这些多余的内存,将数组的内部容量调整为与元素数量相匹配。

以下是一个简单的示例,演示如何使用 CWordArray::FreeExtra 方法:
#include <afx.h>  // 包含 MFC 头文件

void FreeExtraSpace()
{
    CWordArray wordArray;
    wordArray.Add(10);
    wordArray.Add(20);
    wordArray.Add(30);

    // 输出当前数组的大小和内部容量
    TRACE("Array size before FreeExtra: %d\n", wordArray.GetSize());
    TRACE("Array capacity before FreeExtra: %d\n", wordArray.GetCapacity());

    // 释放多余的内存空间
    wordArray.FreeExtra();

    // 输出释放内存后的数组大小和内部容量
    TRACE("Array size after FreeExtra: %d\n", wordArray.GetSize());
    TRACE("Array capacity after FreeExtra: %d\n", wordArray.GetCapacity());
}

在这个例子中,FreeExtraSpace 函数创建了一个 CWordArray 对象,并使用 Add 方法向数组中添加了三个 WORD 类型的元素。然后,通过 GetSize 和 GetCapacity 方法输出当前数组的大小和内部容量。接着调用 FreeExtra 方法释放多余的内存空间,最后再次输出释放内存后的数组大小和内部容量。

请注意,FreeExtra 方法只是释放多余的内存空间,而不会改变数组的实际元素。


转载请注明出处:http://www.zyzy.cn/article/detail/23721/MFC/CWordArray