Stack的常用基本操作:
- s.push() // 压栈
- s.emplace() // 插入,相当于push(目前掌握的唯一区别是emplace可以自行调用构造函数,push不行)
- s.empty() // 判断栈空
- s.top() // 访问栈顶元素
- s.pop() // 退栈
- s.size() // 记录栈大小
/***
* stack的基本操作
* Jan 1 2019
*/
int main() {
stack<double> s; // 定义一个栈
for (int i = 0; i < 10; i++)
s.push(i); // 压栈
s.emplace(10); // 相当于插入push
while (!s.empty()) // 判断栈空
{
printf("%lf\n", s.top()); // 访问栈顶元素
s.pop(); // 弹出栈
}
cout << "栈内的元素的个数为:" << s.size() << endl; // 栈大小
return 0;
}
/// 输出结果
10.000000
9.000000
8.000000
7.000000
6.000000
5.000000
4.000000
3.000000
2.000000
1.000000
0.000000
栈内的元素的个数为:0
Queue的常用基本操作:
- q.push() // 入队
- q.emplace() // 插入,相当于push(区别同Stack)
- q.empty() // 判断队空
- q.front() // 访问队头元素
- q.back() // 访问队尾元素
- q.pop() // 出队
- q.size() // 记录队大小
1 /***
2 * queue的基本操作
3 * Jan 1 2019
4 */
5
6
7 int main() {
8 queue<double> q; // 定义一个队列
9 for (int i = 0; i < 10; i++)
10 q.push(i); // 入队
11 q.emplace(10); // 相当于插入push
12 printf("%lf\n", q.back()); // 访问队尾元素
13 while (!q.empty()) // 判断队空
14 {
15 printf("%lf\n", q.front()); // 访问队头元素
16 q.pop(); // 出队
17 }
18 cout << "队内的元素的个数为:" << q.size() << endl; // 队列大小
19 return 0;
20 }
/// 输出结果
10.000000
0.000000
1.000000
2.000000
3.000000
4.000000
5.000000
6.000000
7.000000
8.000000
9.000000
10.000000
队内的元素的个数为:0