小言_互联网的博客

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

350人阅读  评论(0)

一、字典

  • 字典(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方法一致

三、字典的抽象类


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

 


转载:https://blog.csdn.net/qq_41453285/article/details/103448760
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场