www.pudn.com > MFC 函数实用手册.rar > ArrayClassExample.cpp


// ArrayClassExample.cpp : 定义控制台应用程序的入口点。 
// 
 
#include "stdafx.h" 
#include "ArrayClassExample.h" 
#include "afxtempl.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#endif 
 
 
// 唯一的应用程序对象 
 
CWinApp theApp; 
 
using namespace std; 
 
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) 
{ 
	int nRetCode = 0; 
 
	// 初始化 MFC 并在失败时显示错误 
	if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)) 
	{ 
		// TODO: 更改错误代码以符合您的需要 
		_tprintf(_T("致命错误:MFC 初始化失败\n")); 
		nRetCode = 1; 
	} 
	else 
	{ 
		// TODO: 在此处为应用程序的行为编写代码。 
		 
		// 创建一个队列 
		CArray<int, int> myArray; 
		if( myArray.IsEmpty() ) 
			myArray.SetSize(5); 
 
		// 输出当前队列元素个数和上限 
		_tprintf( "队列1共有 %d 个元素,上限为: %d\n", myArray.GetSize(), myArray.GetUpperBound() ); 
 
		// 设置队列1第一个元素的数值 
		myArray.SetAt(0, 1); 
 
		// 输出队列所有元素的数值 
		for(int i=0; i  myArray.GetCount(); i++) 
			_tprintf("队列中第%d个元素的数值为: %d\n", i+1, myArray.GetAt(i) ); 
 
		// 向队列添加新元素 
		int j = 6; 
		_tprintf("\n添加新元素,数值为: %d\n", j); 
		myArray.Add(j); 
 
		// 输出队列1中元素个数 
		_tprintf("队列1共有 %d 个元素。\n", myArray.GetCount() ); 
 
		// 创建新的队列 
		CArray<int, int> myArray2; 
 
		// 向新队列添加一个元素,数值为 7 
		myArray2.Add(7); 
 
		// 设置队列2中第2个元素的数值,如果队列元素小于2-1,则增加队列元素 
		myArray2.SetAtGrow(2, 3); 
 
		// 删除队列2第2个元素 
		myArray2.RemoveAt(1); 
 
		// 将队列2添加的队列1的末端 
		myArray.Append( myArray2 ); 
		_tprintf("\n将队列2添加到队列1的末端。"); 
 
		// 输出队列1中元素个数 
		_tprintf("队列1共有 %d 个元素。\n", myArray.GetCount() ); 
 
		// 输出队列1所有元素的数值 
		// 获得队列头元素的指针 
		int* nValue = (int*)myArray.GetData(); 
		for(i = 0; i  myArray.GetCount(); i++,/*将当前指针移动一个位置*/nValue++) 
			// 输出当前指针的数值 
			_tprintf("队列中第%d个元素的数值为: %d\n", i + 1, *nValue ); 
 
		// 向队列插入一个新元素 
		_tprintf("\n向队列1中第2个元素前插入新元素,数值为2。\n"); 
		myArray.InsertAt(1, 2); 
 
		// 输出队列1中第二个元素的数值 
		_tprintf("当前队列中第2个元素的数值为: %d\n", myArray.ElementAt(1) ); 
 
		// 复制队列2到队列1中 
		myArray.Copy( myArray2 ); 
		_tprintf("\n将队列2复制到队列1中。\n"); 
 
		// 释放队列1占用的多余空间 
		myArray.FreeExtra(); 
 
		// 删除队列2所有元素并释放空间 
		myArray2.RemoveAll(); 
		myArray2.FreeExtra(); 
 
		// 输出队列1中元素个数 
		_tprintf("队列1共有 %d 个元素。\n", myArray.GetCount() ); 
 
		// 输出队列1所有元素的数值 
		for(i=0; i  myArray.GetCount(); i++) 
			_tprintf("队列中第%d个元素的数值为: %d\n", i+1, myArray.GetAt(i) ); 
 
	} 
	// 调用getchar()函数使程序不至于运行完立即退出,以便查看输出结果 
	getchar(); 
	return nRetCode; 
}