gpt4 book ai didi

c++ - 使用 std::stack 而不是 deque、vector 或 list 的优点和缺点是什么

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

我正在编写一个非常简单的 std::stack,使用 vector 作为其底层容器。我意识到我可以用 vector 容器的 push_back()、pop_back() 和 back() 替换所有的 push()、pop() 和 top() 函数。

我的问题是:当底层容器的受控使用就足够时,为什么还要使用容器适配器?为什么不只使用双端队列、 vector 或列表?会不会浪费内存或处理时间?

最佳答案

当您的代码显示 std::stack 时,读者很清楚他们需要在容器上执行哪些操作……它在强制不使用其他操作的同时进行通信和记录。它可以帮助他们快速形成对代码中算法逻辑的印象。然后很容易替换支持相同接口(interface)的其他实现。

这有点像使用 std::ifstream 而不是 std::fstream - 你可以用 std::fstream 读写,但是无论谁阅读您的代码,都需要考虑更多可能的用途,然后才意识到它仅用于阅读;你会浪费他们的脑力。

关于c++ - 使用 std::stack 而不是 deque、vector 或 list 的优点和缺点是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28207198/

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