gpt4 book ai didi

c++ - c++中序列容器和容器适配器的区别

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:16:00 25 4
gpt4 key购买 nike

c++ 中的序列容器和容器适配器有什么区别?

这里我指的是序列容器作为 vector 、双端队列、列表,而容器适配器作为堆栈、队列、priority_queue。我们什么时候更喜欢序列容器和容器适配器?

最佳答案

容器适配器使用包含来提供对序列容器功能的有限访问。许多容器适配器公共(public)方法只是对这个非公共(public)元素的调用的包装。如果您的应用程序可以忍受容器适配器的有限功能,那么最好使用容器适配器。

假设您只是直接使用其中一个序列容器来实现一个队列。您调用 push_front 将其添加到队列中,调用 pop_back 将其移除。现在出现了一些笨蛋维护者并调用 pop_front 而不是 pop_back。如果您不希望有人弹出您打算用作队列或堆栈的东西的错误端,请不要提供该功能。容器适配器有意不提供对底层序列容器的完全访问。

另一方面,如果您需要深入了解(例如,您需要查看堆栈中的第二个元素),您将需要使用序列容器而不是适配器。您可能想考虑使用适配器理念:不要导出容器的全部功能。只需导出真正需要的功能。

关于c++ - c++中序列容器和容器适配器的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7361251/

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