预览模式: 普通 | 列表

隐形者系列-手机归属地查询v1.0

stl multimap


  在“使用 <map> 库创建关联容器” 一文中,我们讨论了标准库中的 map 关联容器。但那只是 map 容器的一部分。标准库还定义了一个 multimap 容器,它与 map 类似,所不同的是它允许重复键。这个属性使得 multimap 比预想的要更有用:比如在电话簿中相同的人可以有两个以上电话号码,文件系统中可以将多个符号链接映射到相同的物理文件,或DNS服务器可以将几个URLs映射到相同的IP地址。在这些场合,你可以象下面这样:// 注: 伪码multimap <string, string> phonebook;phonebook.insert("Harry","8225687"); // 家里电话phonebook.insert("Harry","555123123"); // 单位电话phonebook.insert("Harry"," 2532532532"); // 移动电话  在 multimap 中能存储重复键的能力大大地影响它的接口和使用。那么如何创建非唯一键的关联容器呢?答案是使用在 <map> 库中定义的 multimap 容器。

提出问题
  与 map 不同,multimap 可以包含重复键。这就带来一个问题:重载下标操作符如何返回相同键的多个关联值?以下面的伪码为例:

查看更多...

Tags: stl map multimap

分类:C++/C#代码 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 5

详细解说STL hash_map系列 2


2.3 hash_map 的比较函数

在map中的比较函数,需要提供less函数。如果没有提供,缺省的也是less< Key> 。在hash_map中,要比较桶内的数据和key是否相等,因此需要的是是否等于的函数:equal_to< Key> 。先看看equal_to的源码:

查看更多...

Tags: stl hash_map

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2

详细解说STL hash_map系列1

0  为什么需要hash_map

用过map吧?map提供一个很常用的功能,那就是提供key-value的存储和查找功能。例如,我要设计一个股票程序记录股票名称和相应的存储,而且随时增加,要快速查找和修改:

ST秦岭 - 600217  STQL 水泥板块

查看更多...

Tags: stl hash_map

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2

控制器和多功能驱动

控制器和多功能设备
在第六章提到过,有两种类型的设备不太符合PNP的框架。它们是控制器设备和多功能设备。控制器设备管理一些子设备,而多功能设备在同一个设备上有几种功能。它们的共同之处在于,必须使用独立的I/O资源来创建多个设备对象。
在 Windows XP 下,支持那些遵守各自总线标准的设备很容易,例如: PCI, PCMCIA,USB设备等。 PCI 总线驱动可自动识别 PCI 多功能卡。对PCMCIA 设备,可以参展DDK中的 MF.sys 驱动的详细说明,该驱动是一个多功能卡的功能驱动,MF.sys 可以枚举卡的各个功能,然后为每个功能加载各自的功能驱动。对具有一个配置的USB设备,USB总线驱动会为该配置的每个接口分别加载相应的驱动。
Windows 98 和 Windows XP 相比,只提供了对USB多功能设备的支持。在Windows 98中,为了支持多功能设备,开发者必须做更多的工作。不仅需要为主设备提供一个功能驱动还要为连在上面的所有子设备提供单独的功能驱动。主设备的功能驱动需要枚举子设备,提供对子设备PNP和电源的缺省处理,它有点像一个微型总线驱动。写一个完整的总线驱动是一个相当大的工程,本文并不试图描述其详细过程。本文会描述一些基本的处理机制,以使读者可以枚举子设备,完成那些不太符合微软模型的多功能设备的驱动。
总体结构

查看更多...

Tags: 驱动开发 irp_mj_pnp pnp vbus

分类:C++/C#代码 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 18

驱动开发要点

1、三种类型的WDM驱动程序
   总线驱动程序(bus driver)
   功能驱动程序(function driver)
   过滤驱动程序(filter driver)

查看更多...

Tags: 驱动开发 过滤驱动

分类:C++/C#代码 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 15

如何在Visual C++中使用Gdiplus(2)

VC6 来写一个 GdiPlus 的 Demo 工程

Step1:新建一个名为 Demo_GdiPlus 的 MFC AppWizard(exe) 工程

操作步骤:

查看更多...

Tags: Visual C++ 使用Gdiplus

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 17