stack和queue
1.stackstack的模拟实现
2.queuequeue的模拟实现
3.容器适配器3.1. 什么是容器适配器3.2. STL标准库中stack和queue的底层结构3.3. deque的简单介绍3.3.1. deque原理介绍3.3.2. deque的缺陷3.3.3. 为什么选择deque作为stack和queue的底层默认容器
1.stack
stack的模拟实现
从栈的接口中可以看出,栈实际是一种特殊的vector,因此使用vector完全可以模拟实现stack。
#pragma once
#include
namespace zxj
{
//template
//template
template
class stack
{
public:
void push(T val)
{
_con.push_back(val);
}
void pop()
{
_con.pop_back();
}
T& top()
{
return _con.back();
}
const T& top()const
{
return _con.back();
}
size_t size()
{
return _con.size();
}
bool empty()
{
return _con.empty();
}
private:
Container _con;
};
void TestStack()
{
stackst;
st.push(1);
st.push(2);
st.push(3);
st.push(4);
while (!st.empty())
{
cout
public:
void push(T val)
{
_con.push_back(val);
}
void pop()
{
_con.pop_front();
}
T& back()
{
return _con.back();
}
const T& back()const
{
return _con.back();
}
T& front()
{
return _con.front();
}
const T& front()const
{
return _con.front();
}
size_t size()
{
return _con.size();
}
bool empty()
{
return _con.empty();
}
private:
Container _con;
};
void TestQueue()
{
queuest;
st.push(1);
st.push(2);
st.push(3);
st.push(4);
while (!st.empty())
{
cout |