2

在此处输入图像描述


1 . 如果Queue基本上是一个“链表”,它应该是关联类型 ,而 Deque 也应该是关联类型,因为这两种抽象数据类型都属于该类别。为什么队列是“适配器类型”和 Deque-“顺序”类型?为什么这些类型与其他定义混合在一起?

2. Stack为什么是Adapter类型?是因为它遵循包装模式并存储标志吗?


另外,如果我没有意义或技术上不正确,您能指出来吗?

编辑:我对关联类型的定义:http ://en.wikipedia.org/wiki/Associative_array - 去看看实现选项卡和第一句话你会看到“链表”数据结构。

4

1 回答 1

2

我想你不知道“联想”这个词是什么意思。关联类型将一组数据与另一组数据相关联。喜欢人的名字,所以你可以通过查找他们的名字来找到一个人。 deque可以称为链表,它只是一个对象序列,因此它是一个顺序容器。没有进行对象关联。还要记住,类别基于接口,而不是实现

我不同意将“适配器”用作一个类别,实际上,适配器为顺序容器提供了一个新接口,因此它们不再像容器一样运行,而是完全像其他东西一样运行。即,队列、优先级队列或堆栈。同样,适配器不满足容器接口。(尽管它们仍然可以被视为容器,具体取决于您的定义)

尽管有名字,但dequequeue没有什么共同之处。第一个是顺序容器,它针对两端的推入和弹出进行了优化,但可以做任何向量可以做的事情。 queue是 a 中对象的接口queue

请注意,您的列表缺少 C++11 容器:array并且forward_list是新的顺序容器、、、、unordered_mapunordered_multimap是新unordered_setunordered_multiset关联容器。没有新的容器适配器。

于 2013-08-16T19:02:13.753 回答