目录
学习使用 stack 类
栈的特性是:后进先出,且栈不支持迭代器访问,因为通过迭代器访问的话就不符合栈的后进先出的特性了,所以不支持
实例化一个 stack 类
stack<int> st;
尾插数据
st.push(1);
st.push(2);
st.push(3);
st.push(4);
st.push(5);
数据 1 是最先入栈的,所以也就是最后才能取出来,数据 5 是最后入栈的,那么就是最先取出来
访问栈顶元素
int ret = st.top();
测试代码:
移除栈顶元素
st.pop();
测试代码:
通过 top() 和 pop() 遍历栈
for (int i = 1; i <= 5; i++)
{
st.push(i);
}
while (!st.empty())
{
// 访问当前栈顶元素
cout << st.top() << " ";
// 移除当前栈顶元素
st.pop();
}
cout << endl;
测试代码:
学习并使用 queue 类
队列的特性是:先进先出,同样不支持迭代器
实例化一个 queue 类
queue<int> q;
同样是通过模板来自定义实例化类的类型
插入数据
q.push(1);
q.push(2);
q.push(3);
q.push(5);
数据 1 是先进队列的,那么也就是先出队列,数据 5 是最后进队列的,也就是最后出队列
访问队头的数据
cout << q.front() << endl;
测试代码:
移除队头的数据
q.pop();
测试代码:
通过 front() 和 pop() 遍历队列
while (!q.empty())
{
// 访问当前队头的数据
cout << q.front() << " ";
// 移除当前队头的数据
q.pop();
}
cout << endl;
测试代码: