stack容器
stack容器基本概念
stack是一种先进后出(first in last out,FILO)的数据结构,它只有一个出口,stack容器允许新增元素,移除元素,取得栈顶元素,但是除了最顶端外,没有任何其他方法可以存取stack的其他元素,换言之,stack不允许有遍历行为。
有元素推入栈的操作成为push,将元素推出stack的操作成为pop
stack没有迭代器
stack所有元素的进出都必须符合先进后出的条件,只有stack顶端的元素,才有机会被外界取用,stack不提供遍历功能,也不提供迭代器
stack常用API
stack构造函数:
stackstkT //stack采用模板类实现,stack对象的默认构造形式
stack(const stack &stk); //拷贝构造函数
stack赋值操作
stack & operator=(const stack &stk); //重载等号操作符
stack数据存取操作
push(elem); //向栈顶添加元素
pop(); //从栈顶移除第一个元素
top(); //返回栈顶元素
stack大小操作
empty(); //判断堆栈是否为空
size(); //返回堆栈的大小
void test1()
{
stack<int>s;
//放入数据
s.push(10);
s.push(324);
s.push(32);
s.push(143);
s.push(435);
while(s.size() != 0)
{
cout << "栈顶为:" << s.top() << endl;
//弹出栈顶元素
s.pop();
}
cout << s.size() << endl;
}
queue容器
queue容器的基本概念
queue是一种先进先出(first in first out,FIFO)的数据结构,它有两个出口,queue容器允许从一段新增元素,从另一端移除元素
queue没有迭代器
queue所有元素的进出都必须符合先进先出的条件,只有queue的顶端元素,才有机会被外界取用,queue不提供遍历功能,也不提供迭代器。
queue常用API
queue构造函数:
queuequeT; //采用模板类实现,queue对象的默认构造形式
queue(const queue &que); //拷贝构造函数
queue存取、插入和删除操作:
push(elem); //往队尾添加元素
pop(); //从队头移除第一个元素
back(); //返回最后一个元素
front(); //返回第一个元素
queue赋值操作:
queue & operator=(const queue &que) //重载等号操作符
queue大小操作:
empty(); //判断队列是否为空
size(); //返回队列的大小
void test2()
{
queue<int>q;
q.push(10);
q.push(50);
q.push(20);
q.push(30);
q.push(70);
while(!q.empty())
{
cout << "队头:" << q.front() << " 队尾:" << q.back() << endl;
//弹出元素
q.pop();
}
cout << q.size() << endl;
}