一、字典
字典是一些形如(k,v)的数对所组成的集合,其中k是关键字,v是与关键字k对应的值。任意两个数对,其关键字都不相等。比如一个选修某一课程的名单是一个字典结构,关键字是学号,对应的值包含名字、性别、分数等等信息。有关字典的操作有:
- 确定字典是否为空
- 确定字典有多少数对
- 寻找一个指定了关键字的数对
- 插入一个数对
- 删除一个指定了关键字的数对
此外还要注意,有时候我们需要另一形式的删除操作,即删除在某一时间之后插入的所有数对。
字典的抽象基类如下:
#pragma once
using namespace std;
//字典的抽象基类
template <class K,class E>
class dictionary
{
public:
virtual ~dictionary(){}
virtual bool empty() const = 0;//判断是否为空
virtual int size() const = 0;//返回字典的大小
virtual pair<const K, E>* find(const K&) const = 0;//查找某一元素
virtual voi