欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++(数据结构与算法):39---字典介绍

程序员文章站 2022-05-19 15:01:18
...

一、字典

  • 字典(dictionary)是由一些形如(k,v)的数对所组成的集合,其中:
    • k:是关键字
    • v:是与关键字k对应的值
  • 任意两个数对,其关键字都不等
  • 多重字典:两个或更多的数对可以具有相同的关键字
  • 有关字典的操作如下:
    • 确定字典是否为空
    • 确定字典有多少数对
    • 寻找一个指定了关键字的数对
    • 插入一个数对
    • 删除一个指定了关键字的数对

二、字典的抽象数据类型(ADT)

  • 下图是字典的抽象数据类型:
    • p.first:表示数对p的关键字
    • p.second:表示数对p的值
    • insert方法:当没有字典中没有p.first时,insert(p)把数对p插入字典;如果字典中已经存在关键字p.first,那么用新值取代旧的值。这种方法与STL中的hash_map的insert方法一致
    • find方法:返回值是指针,指向与给定关键字相匹配的数对。这种方法与STL中的hash_map的insert方法一致

C++(数据结构与算法):39---字典介绍

三、字典的抽象类

template<class K,class E>
class dictionary
{
public:
	virtual ~dictionary() = default;
	virtual bool empty()const = 0; //判断字典是否为空
	virtual int size()const = 0; //返回字典中数对的数目
	virtual std::pair<const K, E>* find(const K&)const = 0; //返回匹配数对的指针
	virtual void erase(const K&) = 0; //删除匹配的数对
	virtual void insert(const std::pair<const K, E>&) = 0; //往字典中插入一个数对
};

 

相关标签: 字典介绍