dimoneindex.h

来自「这是一个可以检索大量数据的程序」· C头文件 代码 · 共 48 行

H
48
字号
#if !defined(AFX_DIMONEINDEX_H__F9182677_BD37_4470_B99A_64FA05FB3AB1__INCLUDED_)
#define AFX_DIMONEINDEX_H__F9182677_BD37_4470_B99A_64FA05FB3AB1__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif 

#include <bitset>
#include <vector>
#include <map>

namespace bmi {

#define MAX_OBJECT	16
#define MAX_KEY 0x7FFFFFFF
#define MIN_KEY	0x80000000
typedef long KEY;
typedef long OID;
typedef std::bitset<MAX_OBJECT> BITSET;
typedef std::map<KEY, BITSET > BITMAP;

/**
	本类不做任何合法性检查, 调用时务必保证数据增强性, 否则
	会出现不一致的数据.	务必保证参数 _down 小于等于 _up,否
	则会出现死循环.
	*/

class DimOneIndex  
{
public:
	DimOneIndex();
	virtual ~DimOneIndex();

	void Find( KEY _key, BITSET & bs);
	void Find( KEY _down, KEY _up, bool bPart, BITSET & bs);
	void Add( OID _oid, KEY _key);
	void Add( OID _oid, KEY _down, KEY _up);
	bool Del( OID _oid, KEY _key);
	bool Del( OID _oid, KEY _down, KEY _up);

private:
	void remove(BITMAP::iterator & it);
	BITMAP	m_Bitmap; // 一维空间Bitmap
};

}

#endif 

⌨️ 快捷键说明

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