c++ - 这个语句到底是什么意思> 它与堆栈有何不同?
问题描述
我不明白list<int>
当我们声明 stack 时它做了什么stack<int, list<int> >
。它不会改变我尝试过的。
解决方案
stack
不是容器,它是容器适配器。你告诉它要存储什么类型的元素以及存储它的容器。
它看起来大致是这样的:
template <typename T, typename Container = std::deque<T>>
class stack {
protected:
Container c;
public:
void push(T const& v) { c.push_back(v); }
void pop() { c.pop_back(); }
};
如您所见,当您从 更改为stack<int>
时stack<int, list<int>>
,您只是更改了底层容器存储。界面完全没有变化。但性能肯定会 -deque
是一个比...stack
更好的选择list
推荐阅读
- php - 使用 Sed 和 grep 作为日志文件
- c++ - 如何定义二维数组的向量?
- java - 当我尝试解析 JSON 时,我得到 JSONException
- python - 从 Apache cgi-bin Python 脚本返回 JSON 数据
- python - 在python中改组多维numpy数组
- android - 原因:重复条目:AndroidManifest.xml- 似乎是什么问题?
- python - 使用 PSEXEC 将日志文件的内容打印到控制台输出
- c# - 如何读取 Quartz.Net 作业的 JOB_DATA?
- awk - 如何克服 awk 中的“(文件名 = - FNR = 1)致命:除零尝试”错误
- python - 不和谐 API。on_member_remove() 上的异常错误