指引网

当前位置: 主页 > 编程开发 > C >

通用库Map模板类

来源:网络 作者:佚名 点击: 时间:2017-07-19 23:02
[摘要] 

///通用库Map模板类
/**
 * 通用库4.0版<br>
 * 这是一个映射类,提供基本的Map功能,这个映射是基于动态有序数组,查找方式用二分查找.<br>
 * 主要的方法有operator[],getValue(),getKey(),operator=,getLength(),RemoveByKey(),RemoveByIndex(),Clear(),Contains()等方法<br>
 * 除此之外,还提了一些类数组的方法.getCapaity(),getFirstIndex(),getLastIndex()等方法.
 * 这个Map定义了内部Entry结构体:SEntry
 * @author zdhsoft(祝冬华)
 * @version 4.0
 * @date 2008-04-01
 * @file xmap.h
 */
#ifndef _X_MAP_H_
#define _X_MAP_H_
#include <xarray.h>
namespace zdh
{
 template<class K,class V>
 class XMap
 { 
  ///Map中的条目
  struct SEntry
  {
   SEntry(const K & aKey)
    :Key(aKey)
   {}
   SEntry(const K & aKey,const V & aValue)
    :Key(aKey),Value(aValue)
   {}
   SEntry(const SEntry & aEntry)
    :Key(aEntry.Key),Value(aEntry.Value)
   {}
   K Key;
   V Value;
  };
 public:
  ///默认构造函数
  XMap() {}
  ///默认拷贝构造函数
  XMap(const XMap<K,V> & aMap);
  ///默认析构函数
  ~XMap() { Clear(); }
  ///清除所有元素
  void Clear(bool bFree = false);
  ///确定map的容量
  void ensureCapacity(XInt aMinimumCapacity) { m_Data.ensureCapacity(aMinimumCapacity); }
  ///取map元素的个数
  XInt getLength() const { return m_Data.getLength(); }
  //!取map的容量
  XInt getCapacity() const { return m_Data.getCapacity(); }
  ///取map的最大容量
  XInt getMaxCapacity() const { return 0x7FFFFFF0 / sizeof(SEntry); }
  ///取第一个下标
  XInt getFirstIndex() const { return m_Data.getFirstIndex(); }
  ///取最后一个下标
  XInt getLastIndex() const { return m_Data.getLastIndex(); }
  ///判断是否是第一个下标
  bool isFirstInde

------分隔线----------------------------