stack
stack 是 STL 提供的容器. 实现的数据结构是栈.
构造函数
栈主要是提供特殊的添加删除操作 (后进先出), 所以构造函数比较简单.
std::stack<int> s;
push / pop
栈最主要的两个函数:
push: 向栈顶添加一个元素, 没有返回值
pop: 删除栈顶一个元素, 没有返回值
#include<iostream>
#include<stack>
using namespace std;int main()
{stack<int> s;s.push(1);s.push(2);cout << s.top() << endl;s.pop();cout << s.top() << endl;return 0;
}
empty / size
empty: 判断栈内元素是否为空, 为空返回 true, 否者返回 false
size: 返回栈内元素个数
#include<iostream>
#include<stack>using namespace std;
int main()
{stack<int> s;if(s.empty() == true){cout << "栈内没有数据" << endl;}s.push(3);s.push(5);cout << "栈内元素个数为: " << s.size() << endl;return 0;
}
top / swap
top: 返回栈顶的元素
swap: 交换两个 stack 对象的数据
#include<iostream>
#include<stack>
using namespace std;int main()
{stack<int> s;s.push(1);s.push(3);s.push(5);cout << s.top() << endl;s.pop();s.pop();cout << s.top() << endl;stack<int> s2;s2.push(10);s.swap(s2);cout << s.top() << endl;cout << s2.top() << endl;return 0;
}
queue
queue 是 STL 提供的容器. 实现的数据结构是队列.
构造函数
队列功能也主要体现在元素的插入删除顺序 (先进先出).
queue<int> qe;
front / back
front: 返回队头元素
back: 返回队尾元素
#include<iostream>
#include<queue>
using namespace std;int main()
{queue<int> qe;qe.push(1);qe.push(2);cout << qe.front() << endl;cout << qe.back() << endl;return 0;
}
push / pop
push: 向队尾插入一个数据, 没有返回值
pop: 删除队头的一个数据, 没有返回值
#include<iostream>
#include<queue>
using namespace std;int main()
{queue<int> qe;qe.push(1);qe.push(2);cout << qe.front() << endl;qe.pop();cout << qe.front() << endl;return 0;
}
empty / size
empty: 判断 queue 中是否还有元素, 有返回 true, 否者返回 false
size: 返回 queue 中元素个数
#include<iostream>
#include<queue>
using namespace std;int main()
{queue<int> qe;qe.push(1);qe.push(2);if(qe.empty() == false){cout << qe.size() << endl;}return 0;
}