亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? simparr.h

?? HEX編輯器
?? H
?? 第 1 頁 / 共 2 頁
字號:
//=========================================================
// File: simparr.h

#if !defined(__SIMPLEARRAY_H)
#define __SIMPLEARRAY_H

#define ARR_EMPTY -1

#include <string.h>

#define bitval(base,pos) ((base)[(pos)/8]&(1<<((pos)%8)))
#define CLIENT_BORDER_WIDTH 2
#define ANSI_SET ANSI_FIXED_FONT
#define OEM_SET  OEM_FIXED_FONT
#define LITTLEENDIAN_MODE    0
#define BIGENDIAN_MODE 1
#define TIMERID 1
#define TIMERDURATION 10
#define MRUMAX 9
#define BMKMAX 9
#define BMKTEXTMAX 256
#define TPL_TYPE_MAXLEN 16
#define TPL_NAME_MAXLEN 128
#define FINDDLG_BUFLEN (64*1024)

template<class T> class SimpleArray
{
public:
	operator T*()
	{
		return m_pT;
	}
	T& operator[](int nIndex) {return m_pT[nIndex];}

SimpleArray()
{
	m_pT = NULL;
	m_nSize = 0;
	m_nUpperBound = ARR_EMPTY;
	m_nGrowBy = 1;
}

//-------------------------------------------------------------------
SimpleArray(int nNewSize, int nGrowBy)
: m_nGrowBy(nGrowBy), m_nUpperBound(ARR_EMPTY), m_nSize(nNewSize)
{
	m_pT = new T[m_nSize];
}

//-------------------------------------------------------------------
SimpleArray(T* ptArray, int upbound, int size)
: m_nGrowBy(1), m_pT(ptArray), m_nUpperBound(upbound), m_nSize(size)
{
#ifdef _DEBUG
	if(m_pT == NULL || m_nUpperBound<0 || m_nSize<=0 || m_nUpperBound >= m_nSize)
	{
		m_nSize = 0;
		m_nUpperBound = ARR_EMPTY;
	}
#endif
}

//-------------------------------------------------------------------
SimpleArray(SimpleArray& spaArg)
	: m_nSize(spaArg.m_nSize), m_nUpperBound(spaArg.m_nUpperBound),
	m_nGrowBy(spaArg.m_nGrowBy)
{
	m_pT = new T[m_nSize];
	int k;
	for(k = 0; k <= m_nUpperBound; k++)
		m_pT[k] = spaArg.m_pT[k];
}

//-------------------------------------------------------------------
~SimpleArray()
{
	if(m_pT != NULL) delete [] m_pT;
}

//-------------------------------------------------------------------
BOOL InsertAtGrow(int nIndex, T argT, int nCount = 1)
{
	if(nIndex<0 || nCount<1)
		return FALSE;
	int i;
	if(nIndex > m_nUpperBound)
	{
		for(i = 0; i < nCount; i++)
			SetAtGrow(nIndex + i, argT);
		return TRUE;
	}
	else
	{
		if(m_nSize < m_nUpperBound + 1 + nCount)
		{
			if (AddSpace(nCount) == FALSE)
				return FALSE;
		}
		for(i = m_nUpperBound + nCount; i > nIndex; i--)
		{
			m_pT[i] = m_pT[i-nCount];
		}
		for(i = 0; i < nCount; i++)
			m_pT[nIndex + i] = argT;
		m_nUpperBound += nCount;
		return TRUE;
	}
}

//-------------------------------------------------------------------
BOOL InsertAtGrow (int nIndex, T* pT, int nSrcIndex, int nCount)
{
	if(nIndex<0 || nCount<1)
		return FALSE;
	int i;
	if(nIndex > m_nUpperBound)
	{
		for(i = 0; i < nCount; i++)
		{
			if (SetAtGrowRef(nIndex + i, pT[nSrcIndex+i]) == FALSE)
				return FALSE;
		}
		return TRUE;
	}
	else
	{
		if(m_nSize < m_nUpperBound + 1 + nCount)
		{
			if (AddSpace(nCount) == FALSE)
				return FALSE;
		}
		for(i = m_nUpperBound + nCount; i > nIndex; i--)
		{
			m_pT[i] = m_pT[i-nCount];
		}
		for(i = 0; i < nCount; i++)
			m_pT[nIndex + i] = pT[nSrcIndex+i];
		m_nUpperBound += nCount;
		return TRUE;
	}
}

//-------------------------------------------------------------------
void InsertAtGrowRef(int nIndex, T& argT, int nCount = 1)
{
	if(nIndex<0 || nCount<1) return;
	int i;
	if(nIndex > m_nUpperBound)
	{
		for(i = 0; i < nCount; i++)
			SetAtGrowRef(nIndex + i, argT);
		return;
	}
	else
	{
		if(m_nSize < m_nUpperBound + 1 + nCount)
			AddSpace(nCount);
		for(i = m_nUpperBound + nCount; i > nIndex; i--)
		{
			m_pT[i] = m_pT[i-nCount];
		}
		for(i = 0; i < nCount; i++)
			m_pT[nIndex + i] = argT;
		m_nUpperBound += nCount;
	}
}

//-------------------------------------------------------------------
BOOL InsertAt( int nIndex, T argT, int nCount = 1)
{
	// Valid index?
	if( nIndex < 0 || nIndex > m_nUpperBound )
		return FALSE;

	int i;
	// Is there enough space after m_nUpperBound for inserting?
	if( ( m_nSize - 1 ) - m_nUpperBound >= nCount )
	{
		// Yes, no need to allocate more memory.
		// Push up the elements at the current position.
		for( i = m_nUpperBound + nCount; i >= nIndex + nCount; i-- )
			m_pT[ i ] = m_pT[ i - nCount ];
		// Copy in the new data.
		for( i = 0; i < nCount; i++ )
			m_pT[ nIndex + i ] = argT;
		// Adjust m_nUpperBound to new size.
		m_nUpperBound += nCount;
	}
	else
	{
		// No, need to allocate more memory.
		for (i = m_nSize - 1; i >= nIndex + nCount; i--)
			m_pT[i] = m_pT[i - nCount];
		if (m_nSize - nIndex < nCount)
			nCount = m_nSize - nIndex;
		for (i = 0; i < nCount; i++)
			m_pT[nIndex + i] = argT;
		m_nUpperBound = m_nSize - 1;		
	}
	return TRUE;
}

//-------------------------------------------------------------------
void InsertAtRef(int nIndex, T& argT, int nCount)
{
	if(nIndex < 0 || nIndex > m_nUpperBound)
		return;
	int i;
	if ((m_nSize - 1) - m_nUpperBound >= nCount) 
	{
		for(i = m_nUpperBound + nCount; i >= nIndex + nCount; i--)
			m_pT[i] = m_pT[i - nCount];
		for(i = 0; i < nCount; i++)
			m_pT[nIndex + i] = argT;
		m_nUpperBound += nCount;
	}
	else
	{
		for (i = m_nSize - 1; i >= nIndex + nCount; i--)
			m_pT[i] = m_pT[i - nCount];
		if (m_nSize - nIndex < nCount)
			nCount = m_nSize - nIndex;
		for (i = 0; i < nCount; i++)
			m_pT[nIndex + i] = argT;
		m_nUpperBound = m_nSize - 1;		
	}
}

//-------------------------------------------------------------------
BOOL RemoveAt(int nIndex, int nCount = 1)
{
	if(nIndex < 0 || nIndex > m_nUpperBound || nCount < 1) return FALSE;
	if(nCount > m_nUpperBound - nIndex)
	{
		m_nUpperBound = nIndex - 1;
		return TRUE;
	}
	int i;
	for(i = nIndex; i <= m_nUpperBound - nCount; i++)
	{
		m_pT[i] = m_pT[i + nCount];
	}
	m_nUpperBound -= nCount;
	return TRUE;
}

//-------------------------------------------------------------------
void SetAtGrow(int nIndex, T argT)
{
	if(nIndex < 0) return;
	if(nIndex > m_nSize - 1)
		AddSpace(nIndex - m_nSize + 1);
	m_pT[nIndex] = argT;
	if(nIndex > m_nUpperBound) m_nUpperBound = nIndex;
}

//-------------------------------------------------------------------
BOOL SetAtGrowRef(int nIndex, T& argT)
{
	if(nIndex < 0)
		return FALSE;
	if(nIndex > m_nSize - 1)
	{
		if (AddSpace(nIndex - m_nSize + 1) == FALSE)
			return FALSE;
	}
	m_pT[nIndex] = argT;
	if(nIndex > m_nUpperBound)
		m_nUpperBound = nIndex;
	return TRUE;
}

//-------------------------------------------------------------------
void SetAt(int nIndex, T argT)
{
	if(nIndex >= 0 && nIndex < m_nSize)
	{
		m_pT[nIndex] = argT;
		if(nIndex > m_nUpperBound)
			m_nUpperBound = nIndex;
	}
	else
		return;
}

//-------------------------------------------------------------------
void SetAtRef(int nIndex, T& argT)
{
	if(nIndex >= 0 && nIndex < m_nSize)
	{
		m_pT[nIndex] = argT;
		if(nIndex > m_nUpperBound)
			m_nUpperBound = nIndex;
	}
	else
		return;
}

//-------------------------------------------------------------------
T GetAt(int nIndex)
{
	return m_pT[nIndex];
}

//-------------------------------------------------------------------
BOOL AddSpace(int nExtend)
{
	int newsize = m_nSize + (((nExtend-1) / m_nGrowBy) + 1) * m_nGrowBy;
	T* pT = new T[newsize];
	if (pT != NULL)
	{
		int i;
		for(i = 0; i < m_nSize; i++)
			pT[i] = m_pT[i];
		if(m_pT != NULL)
			delete [] m_pT;
		m_pT = pT;
		m_nSize = newsize;
		return TRUE;
	}
	else
		return FALSE;
}

//-------------------------------------------------------------------
int GetGrowBy()
{
	return m_nGrowBy;
}

//-------------------------------------------------------------------
int GetSize()
{
	return m_nSize;
}

//-------------------------------------------------------------------
int GetUpperBound()
{
	return m_nUpperBound;
}

//-------------------------------------------------------------------
int GetLength()
{
	return m_nUpperBound+1;
}

//-------------------------------------------------------------------
BOOL SetSize(int nNewSize, int nGrowBy = 0 )
{
	if(nNewSize < 0)
		return FALSE;
	if (nNewSize == m_nSize)
		return TRUE;
	if( nNewSize == 0 )
	{
		ClearAll();
		return TRUE;
	}

	T* pT = new T[nNewSize];
	if (pT == NULL)
		return FALSE;
	int i;
	if(m_nUpperBound < nNewSize)
	{
		for(i = 0; i <= m_nUpperBound; i++)
			pT[i] = m_pT[i];
	}
	else
	{
		for(i = 0; i < nNewSize; i++)
			pT[i] = m_pT[i];
		m_nUpperBound = nNewSize - 1;
	}

	if(m_pT != NULL)
		delete [] m_pT;
	m_pT = pT;
	m_nSize = nNewSize;
	if(nGrowBy > 0)
		m_nGrowBy = nGrowBy;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区在线播放| 成人免费一区二区三区在线观看| 国产欧美一区二区精品忘忧草 | 天天做天天摸天天爽国产一区| 激情成人综合网| 欧美在线观看你懂的| 国产欧美日韩亚州综合| 免费精品视频在线| 一本大道综合伊人精品热热 | 精品一区二区三区在线视频| 91丨九色丨黑人外教| 久久看人人爽人人| 日韩成人免费在线| 欧美吞精做爰啪啪高潮| 亚洲国产精华液网站w| 美国欧美日韩国产在线播放| 91福利区一区二区三区| 亚洲特黄一级片| 国产精品456| 久久婷婷色综合| 韩国成人在线视频| 日韩欧美中文字幕制服| 日韩中文欧美在线| 欧美午夜电影网| 夜色激情一区二区| 91豆麻精品91久久久久久| 亚洲欧美日韩国产成人精品影院| 成人一区在线看| 久久久精品黄色| 国产成人精品免费在线| 国产日产欧产精品推荐色| 国产精品羞羞答答xxdd| 久久亚洲欧美国产精品乐播| 激情综合色综合久久综合| 日韩欧美一二三区| 久久69国产一区二区蜜臀| 欧美成人国产一区二区| 韩国女主播一区| 国产三级欧美三级日产三级99| 国产伦精品一区二区三区视频青涩 | 一本大道综合伊人精品热热| 一区二区在线电影| 欧美日韩在线一区二区| 首页综合国产亚洲丝袜| 日韩一区二区精品在线观看| 久久国产精品99精品国产| 日韩一区二区精品葵司在线 | 久久美女艺术照精彩视频福利播放| 蜜桃精品视频在线| 久久精品在线免费观看| 99re视频这里只有精品| 亚洲一区在线播放| 欧美一级片在线观看| 国产一区二区91| 亚洲美女视频在线观看| 欧美精品在欧美一区二区少妇| 日韩精品一二三四| 久久久久久久免费视频了| 成人激情综合网站| 亚洲高清免费一级二级三级| 日韩一级精品视频在线观看| 国产成人精品亚洲777人妖| 亚洲免费观看高清完整版在线 | 日本中文字幕一区二区视频| 久久精品在线免费观看| 91久久精品国产91性色tv| 麻豆精品久久精品色综合| 国产精品久久久久久久岛一牛影视 | 水蜜桃久久夜色精品一区的特点| 日韩精品自拍偷拍| 色综合网色综合| 黄色日韩三级电影| 久久久久国产精品免费免费搜索| 波多野结衣欧美| 奇米777欧美一区二区| 国产精品久久久久久久第一福利| 制服丝袜在线91| aaa欧美日韩| 裸体在线国模精品偷拍| 一区二区三区自拍| 久久久久久97三级| 欧美老人xxxx18| 成人h版在线观看| 青青草国产精品亚洲专区无| 亚洲精选在线视频| 久久久国产一区二区三区四区小说 | 日产精品久久久久久久性色| 国产精品久久福利| 日韩午夜小视频| 欧美日韩精品二区第二页| 高清beeg欧美| 国模套图日韩精品一区二区| 午夜天堂影视香蕉久久| 亚洲人成网站在线| 国产精品美女久久久久久久| 欧美成人aa大片| 欧美精品一级二级| 在线视频欧美精品| 99re成人精品视频| 粉嫩av亚洲一区二区图片| 乱一区二区av| 美腿丝袜亚洲综合| 男男视频亚洲欧美| 亚洲午夜电影网| 亚洲色图20p| 最新不卡av在线| 自拍偷拍亚洲综合| 国产精品传媒入口麻豆| 日本一区二区综合亚洲| 久久亚洲综合av| 久久久久久亚洲综合| 久久―日本道色综合久久| 日韩欧美的一区二区| 日韩欧美国产一区二区在线播放| 4438x成人网最大色成网站| 欧美色视频在线| 欧美疯狂做受xxxx富婆| 欧美人成免费网站| 欧美精品自拍偷拍| 日韩欧美一级二级三级| 欧美不卡激情三级在线观看| 欧美videos中文字幕| 日韩免费观看2025年上映的电影| 91精品国产综合久久香蕉的特点 | 91精品国产综合久久精品图片| 欧美三级电影网| 欧美一区二区免费观在线| 日韩女优视频免费观看| 欧美一区日韩一区| 久久免费看少妇高潮| 久久精品欧美一区二区三区麻豆 | 五月综合激情网| 亚洲成a人片在线观看中文| 日韩黄色小视频| 国产精品亚洲人在线观看| 色综合久久天天| 欧美日韩久久久| 久久久久国产精品人| 亚洲色图欧美激情| 蜜臀精品一区二区三区在线观看 | 91精品国产综合久久福利| 日韩欧美亚洲国产另类| 久久亚洲一区二区三区明星换脸 | 国产精品久久久久久久久动漫| 亚洲另类一区二区| 美女网站色91| aaa欧美日韩| 欧美高清dvd| 中文字幕一区二区三区乱码在线| 亚洲午夜私人影院| 国产一区二区在线影院| 欧美精三区欧美精三区| 亚洲国产高清aⅴ视频| 亚洲综合丁香婷婷六月香| 韩国中文字幕2020精品| 色偷偷一区二区三区| 欧美大片国产精品| 最新成人av在线| 另类成人小视频在线| 99久久99久久综合| av电影天堂一区二区在线| 欧美日免费三级在线| 国产精品麻豆一区二区| 伊人婷婷欧美激情| 粉嫩13p一区二区三区| 欧美一级片在线看| 国产精品福利影院| 久久激五月天综合精品| 成人av资源在线| 欧美www视频| 婷婷六月综合亚洲| 成人精品一区二区三区四区| 日韩一区二区在线看| 国产欧美日韩不卡免费| 日韩av电影免费观看高清完整版 | 欧美精品一卡二卡| 亚洲日本成人在线观看| 日本不卡高清视频| 欧美色图激情小说| 精品国产免费人成在线观看| 亚洲精品菠萝久久久久久久| 国产精品久久久爽爽爽麻豆色哟哟| 一区二区免费在线| 暴力调教一区二区三区| 日韩一区二区三免费高清| 亚洲精品免费一二三区| 免费美女久久99| 欧美性猛交xxxx黑人交| 悠悠色在线精品| 懂色av一区二区三区蜜臀| 久久综合久久久久88| 亚洲第一精品在线| 国产高清不卡一区二区| 欧美一区二区高清| 亚洲一区二区三区小说| www.日韩在线| 国产女主播一区| 极品瑜伽女神91| 欧美曰成人黄网| 亚洲日本在线观看|