栈容器
栈数据结构
头文件:
#include <stack>
构造函数:
stack<type> s1; //无参构造
stack<type> s(s1); //拷贝构造
赋值:
stack<type> s1; //无参构造
stack<type> s;
s = s1;
数据存取:
-
入栈
stack.push(elem);
-
出栈
stack.pop();
-
获取栈顶元素
stack.top();
判断栈是否为空:
stack.empty();
获取栈的大小:
stack.size();
示例:
void stack_test(void)
{
stack<int> s1; //无参构造
s1.push(20);
s1.push(40);
s1.push(10);
s1.push(50);
stack<int> s2(sk1); //拷贝构造
if (s2.empty())
{
cout << "s2 is empty" << endl;
}
else
{
cout << "top = " << s2.top() << endl;
cout << "size = " << s2.size() << endl;
}
s2.pop(); //出栈
}
queue容器
队列数据结构,元素先进先出
头文件:
#include <queue>
构造函数:
queue<type> que; //默认无参构造
queue<type> que2(que); //拷贝构造
赋值:
queue<type> que;
queue<type> que2 = que; //重载等号
入队:
queue.push(elem);
出队:
queue.pop();
判断队列是否为空:
queue.empty();
获取队列的大小:
queue.size();
获取队列第一个元素:
queue.front();
获取队列最后一个元素:
queue.back();
示例:
void queue_test(void)
{
queue<int> que;
que.push(30);
que.push(50);
que.push(60);
que.push(20);
que.push(40);
queue<int> que2(que);
if (que2.empty())
{
cout << "que2 is empty" << endl;
}
else
{
cout << "queue size :" << que2.size() << endl;
cout << "front elem :" << que2.front() << endl;
cout << "back elem :" << que2.back() << endl;
}
que2.pop();
if (que2.empty())
{
cout << "que2 is empty" << endl;
}
else
{
cout << "queue size :" << que2.size() << endl;
cout << "front elem :" << que2.front() << endl;
cout << "back elem :" << que2.back() << endl;
}
}