gpt4 book ai didi

C++ STL 容器——关于类型的一些问题?

转载 作者:行者123 更新时间:2023-11-30 04:15:27 25 4
gpt4 key购买 nike

enter image description here


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

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


此外,如果我说得不对或技术上不正确,您能指出来吗?

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

最佳答案

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

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

尽管名称不同,dequequeue 没有共同点。第一个是顺序容器,它针对两端的插入和弹出进行了优化,但可以做 vector 可以做的任何事情。 queuequeue 中对象的接口(interface)。

请注意,您的列表缺少 C++11 容器:arrayforward_list 是新的顺序容器,unordered_mapunordered_multimapunordered_setunordered_multiset 是新的关联容器。没有新的容器适配器。

关于C++ STL 容器——关于类型的一些问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18280273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com