通用库Map模板类

///通用库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

时间: 2024-09-16 12:42:10

通用库Map模板类的相关文章

通用库动态集合模板类

  /**////通用库动态集合模板类/**//** * 通用库4.0版<br> * 这是一个集合类,这个类的元素存放是一个有序的数组.这个类的元素查找方法为二分查找. * 这个类提供了类相关的所有功能.集合的方法有交集*,并集+,差集-,除此之后,还有*=,+=,-=等对应方法. * 集合类通过Contains,检查指定元素是否在集合中 * @author zdhsoft(祝冬华) * @version 4.0 * @date 2008-04-01 * @file xset.h */#ifn

通用库动态数组模板类

///通用库动态数组模板类/** * 通用库4.0版<br> * 这里定义了一个动态数组模板类.这次将以前的XDyanmicArray和XArray合并成一个XArray了. * 除此之外,增加了数组元素初始化为0的操作,同时,会执行数组元素默认的构造函数和析造函数. * 同样,这个动态数组比较适合元数据中没有指针数据成员的元素或额外使用资源的元素. * 对于使用对象为数组元素的数组,可以使用XObjectArray模板类,可以有效的解决问题. * @author zdhsoft(祝冬华) *

通用库动态对象数组模板类

///通用库动态对象数组模板类/** * 通用库4.0版<br> * 这里定义了一个动态对象数组模板类.这个数组适合不能移动的对象或含有指针或被引用的对象. * 特点就是,不会像XArray中一样,调整数组容量,会造所有数组元素地址都发生变化. * @author zdhsoft(祝冬华) * @version 4.0 * @date 2008-03-01 * @file xobjectarray.h */#ifndef _X_OBJECT_ARRAY_H_#define _X_OBJECT_

ASP 通用模板类

模板 ASP 通用模板类. 适合存在较少循环的模板.未实现内部循环,需要使用正则表达式,较浪费资源和时间,如需使用可参考这篇文章. 特性可设定私有缓存或公共缓存,提高效率可自由选择使用 Stream 组件或 FSO 组件支持自定义文件编码可保存文件 属性 Name文本,该模板名称,主要用于使用公共缓存时区分不同模板. Format文本,文件编码类型,可设置值. Object文本,使用组件,可设置值: StreamFSO PublicCache布尔值,使用公共缓存,开启时模板文件将保存到Appli

ASP通用模板类

  ASP 通用模板类. 适合存在较少循环的模板.未实现内部循环,需要使用正则表达式,较浪费资源和时间,如需使用可参考这篇文章. 特性 可设定私有缓存或公共缓存,提高效率 可自由选择使用 Stream 组件或 FSO 组件 支持自定义文件编码 可保存文件 属性 Name 文本,该模板名称,主要用于使用公共缓存时区分不同模板. Format 文本,文件编码类型,可设置值. Object 文本,使用组件,可设置值: Stream FSO PublicCache 布尔值,使用公共缓存,开启时模板文件将

c++模板类

理解编译器的编译模板过程 如何组织编写模板程序 前言常遇到询问使用模板到底是否容易的问题,我的回答是:"模板的使用是容易的,但组织编写却不容易".看看我们几乎每天都能遇到的模板类吧,如STL, ATL, WTL, 以及Boost的模板类,都能体会到这样的滋味:接口简单,操作复杂. 我在5年前开始使用模板,那时我看到了MFC的容器类.直到去年我还没有必要自己编写模板类.可是在我需要自己编写模板类时,我首先遇到的事实却是"传统"编程方法(在*.h文件声明,在*.cpp文

一个.net下通用的Cookie操作类

笔者曾经参与一个大型多用户商城的开发,系统用户角色很多,有买家,卖家,代理商,系统管理员 ,普通管理员,超级管理员等,这些用户都涉及到登陆系统,然后建立cookies的问题,由于角色的不同 ,这些用户登陆系统后,所建的cookies都相对独立,而且对一个多用户商城来说,cookies区分域很重要 ,不同的域名要建不同的域.因此笔者在开发的过程中,写了很多次的建cookies,取cookies的代码,不 胜其烦! 既然都是建cookies,那么肯定有共同点,我们何不抽象出来,写一个通用的Cooki

遍历-实现一个完整二叉树c++模板类

问题描述 实现一个完整二叉树c++模板类 为二叉树实现一个完整的C++模板类.要求:包含构造函数.复制构造函数和析构函数,实现四个遍历及前向迭代 解决方案 #include<iostream> #include<deque> using namespace std; //binary node with parent node template<typename T> class node { public: node(const T &v, node<T

举例讲解Java的Jackson库中ObjectMapper类的使用_java

ObjectMapper类是Jackson库的主要类.它提供一些功能将转换成Java对象匹配JSON结构,反之亦然.它使用JsonParser和JsonGenerator的实例实现JSON实际的读/写. 类声明以下是org.codehaus.jackson.map.ObjectMapper类的声明: public class ObjectMapper extends ObjectCodec implements Versioned 嵌套类 S.N. 类 & 描述 1 static class O