使用std :: stack而不仅仅是deque,vector或list有什么优缺点

时间:2015-01-29 04:48:17

标签: c++ stl stack containers

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

我的问题是:为什么在底层容器的受控使用足够时使用容器适配器?为什么不使用deque,vector或list?会浪费内存或处理时间吗?

1 个答案:

答案 0 :(得分:6)

当您的代码显示std::stack时,读者可以清楚地知道他们需要在容器上执行哪些操作......它会进行通信并记录文档,同时强制执行其他操作。它可以帮助他们快速形成代码中算法逻辑的印象。然后,很容易替换其他符合相同接口的实现。

有点像使用std::ifstream而不是std::fstream - 您可以使用std::fstream进行读写,但是无论读取您的代码,您都需要考虑更多可能的用途在意识到它只是用于阅读之前;你会浪费他们的精力。

相关问题