⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 intarray.h

📁 jedit 一个小型java编译器的源码
💻 H
字号:
/******************************************************************************\
*
*  文件名:    IntArray.h
*  目的:	  定义IntArray类
*  使用说明:  IntArray类是一个对整数数组进行操作的类。
*			  在保持此程序完整性的情况下,你可以任意传播它。你也可以修改它
*			  来为你服务,如果你要将此程序用于商业目的,请告知我。
*
*  CopyLeft	 2002  张元一
*
*  CopyLeft 是自由软件基金会(FSF)推荐使用的自由软件的标志
*
\******************************************************************************/
#ifndef INTARRAY_H
#define INTARRAY_H
#include<assert.h>
#include<malloc.h>
//初始缓冲区大小
#define INTARRAY_SIZE	100
//缓冲区大小递增量
#define INTARRAY_INCRE		100
class IntArray
{
	//缓冲区指针
	int *Data;
	//缓冲区中存储数据长度
	int Length;
	//缓冲区大小
	int Size;
	//当前位置
	int Cur;
public:
	IntArray()
	{
		Size=INTARRAY_SIZE;
		Length=0;
		Data=(int*)malloc(sizeof(int)*Size);
		assert(Data);
	}
	~IntArray()
	{
		free(Data);
		Data=0;
		Length=0;
	}
	//清空缓冲区
	void	Clear(){Length=0;}
	//将I插入缓冲区
	void	Add(int i)
	{
		if(Length==Size)
			Inflate();
		*(Data+Length)=i;
		Length++;
	}
	//删除当前数据
	void	Delete(){Length--;}

	//获得缓冲区中第I个整数
	int		Get(int i)
	{
		if(i<0||i==Length)
			return -1;
		return *(Data+i);
	}

	//扩大缓冲区
	void	Inflate()
	{
		int* newData;
		Size+=INTARRAY_INCRE;
		newData=(int*)realloc(Data,Size*sizeof(int));
		assert(newData);
		Data=newData;
	}
	//获得缓冲区中数据长度
	int	GetLength(){return Length;}
};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -