C++(标准库):21---STL容器之(容器适配器之stack)
2020-04-19 21:19
381 查看
一、容器适配器概述
-
什么是适配器(container adapter):
一个适配器是一种机制,能使某种事物的行为看起来像另外一种事物一样 - 容器、迭代器、函数都有适配器(本文主题是容器的适配器)
- stack:栈。具有先进后出的特点。
基础语法参阅:https://blog.csdn.net/qq_41453285/article/details/105484289
- container adapter如今提供了reference和const_reference两个类型定义
- 一种容器适配器只能接受一种已有的容器类型
二、概念
- 栈。具有先进后出的特点
三、特点
- 元素先进后出
- 除了array和forward_list。,stack底层都可以基于其他容器实现。默认基于deque实现
四、如何创建
- 头文件:#include<stack>
- 默认创建: stack<int> num;//创建一个元素类型为int的stack适配器,其底层容器类型默认基于deque实现(上面有介绍)
- stack<string,vector<string>> str;//创建一个元素类型为string的stack适配器,其底层容器类型为vector
五、相关操作与函数
[code]size_type:无符号整型,用于表示当前容器的大小、索引等 value_type:适配器中存在的元素类型 container_type:实现适配器的底层容器类型 stack<int,vector<int>> num; stack<int,vector<int>>::value_type i;//i为int类型 stack<int,vector<int>>::container_type j;//j为vector类型
[code]//构造函数 A a;//创建一个名为a的空适配器 A a(b);//创建一个a的适配器,内容为b的拷贝
[code]s.empty();//判断当前适配器是否为空 s.size();//返回s中的元素个数 s.top();//返回栈顶元素但不删除 s.pop();//删除栈顶元素,但是不返回该元素 s.push(t);//压入元素t s.empalce(args);//压入一个有args创建的对象 s.swap(b);//交换s和b。成员函数版本 swap(s,b);//同上。系统函数版本
六、演示案例
- 逐个打印栈顶元素,并逐个出栈
[code]stack<int> st; st.push(10); st.push(20); st.push(30); while (!st.empty()) { cout << st.top() << endl; st.pop(); }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- C++(STL3)容器适配器(1) stack,queue and priority_queue
- C++之STL(十一):容器适配器(stack、 queue 、priority_queue)源码浅析与使用示例
- 从零开始学C++之STL(十一):容器适配器(stack、 queue 、priority_queue)源码浅析与使用示例
- 8、【C++ STL】容器适配器(stack/queue/priority_queue)
- C++(标准库):23---STL容器之(容器适配器之priority_queue)
- C++(标准库):22---STL容器之(容器适配器之queue)
- C++的STL容器之容器适配器:stack、queue、priority_queue
- 我的Stack实现(用C++实现),模仿STL的Stack实现,但是不用容器类
- STL学习——STL中的序列式容器及适配器总结(vector、list、deque、stack、queue)
- STL之容器适配器stack的实现框架
- C++ STL标准库与泛型编程(六)哈希表、Unordered 容器
- c++ STL容器之栈stack
- C++ STL容器stack和queue详解
- C++:顺序容器及顺序容器适配器(stack、queue等)
- C++ STL基本容器的使用(vector、list、deque、map、stack、queue)
- c++ 提高4 map容器 共性机制 使用时机 比较| STL算法 算法基础仿函数 谓词 函数适配器 遍历算法
- c++ STL stack容器成员函数
- C++ STL 容器(vector,list,deque,stack,queue,priority_queue,set,map)
- c++STL容器(map,set,vector,stack,queue)
- C++ STL标准库的关联容器set与map