C++STL模板库适配器之stack容器
适配器
一丶适配器简介
Stl中的适配器,有栈 (stack) 队列 queue 根priority_queue
适配器都是包装了 vector list deque等顺序容器. 也可以看做是由这些容器实现的一个新的容器.
适配器没有提供迭代器.也不能同事插入或者删除多个元素.
二丶栈(stack)用法
1.栈的常用方法
- push(x) 将元素入栈
- pop() 弹出栈顶元素.只是弹出.没有返回值
- top() 获取栈顶元素(不弹出)
- empty() 判断栈是否为空, 为空返回true 不为空返回0
- size() 返回栈中元素个数.
2.栈操作代码
使用适配器 stack 需要包含头文件
#include "stdafx.h"
#include <string>
#include <STACK>
#include <VECTOR>
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
stack<int> s; //如果使用int 底层默认使用deque容器
s.push(1);
s.push(2);
s.push(3);
s.push(4);
s.push(5); //栈是先入后出的结构.所以栈中数据排列是 5 4 3 2 1
int nValue = s.top(); //获取栈顶元素
s.pop(); //弹出栈顶元素.此时就没有5了
cout << "栈顶元素为: " << nValue << endl;
int nSize = s.size();
cout << "当前栈大小为: " << nSize << endl;
//遍历栈
while (!s.empty())
{
cout << s.top() << " " ;
s.pop();
}
cout << endl;
return 0;
}
C++STL模板库适配器之stack容器的更多相关文章
- C++STL模板库适配器之queue队列
目录 适配器之队列 一丶队列简介 二丶队列(queue)代码操作 1.常用方法 适配器之队列 一丶队列简介 队列是先进先出的数据结构. 在STL中使用 queue表示. 底层使用的是序列容器deque ...
- C++STL模板库适配器之优先级队列
目录 适配器之优先级队列 一丶优先级队列简介(priority_queue) 二丶优先级队列代码演示 1.优先级队列代码以及使用简介 适配器之优先级队列 一丶优先级队列简介(priority_queu ...
- C++STL模板库序列容器之vector
目录 STL之Vecter 一丶STL简介 二丶Vector用法 1.vector容器的使用 2.vector迭代器. 3.vector中的方法. 三丶常用算法 1.常见算法中的算法方法. 2.sor ...
- 容器适配器之stack
参见http://www.cplusplus.com/reference/stack/stack/ template<class T, class Container = deque<T& ...
- C++ 泛型程序设计与STL模板库(1)---泛型程序设计简介及STL简介与结构
泛型程序设计的基本概念 编写不依赖于具体数据类型的程序 将算法从特定的数据结构中抽象出来,成为通用的 C++的模板为泛型程序设计奠定了关键的基础 术语:概念 用来界定具备一定功能的数据类型.例如: 将 ...
- STL学习系列四:Stack容器
Stack简介 stack是堆栈容器,是一种“先进后出”的容器. stack是简单地装饰deque容器而成为另外的一种容器. #include <stack> 1.stack对象的默认构造 ...
- C++STL模板库序列容器之List容器
目录 一丶List容器的存储结构 二丶丶STL中list容器的使用. 一丶List容器的存储结构 list容器底层是链表结构来维护的.跟vector不一样. vector是数组维护的.拥有连续内存.所 ...
- STL(标准模板库) 中栈(stack)的使用方法
STL 中栈的使用方法(stack) 基本操作: stack.push(x) 将x加入栈stack中,即入栈操作 stack.pop() 出栈操作(删除栈顶),只是出栈,没有返回值 stack.t ...
- iBinary C++STL模板库关联容器之map/multimap
目录 一丶关联容器map/multimap 容器 二丶代码例子 1.map的三种插入数据的方法 3.map集合的遍历 4.验证map集合数据是否插入成功 5.map数据的查找 6.Map集合删除元素以 ...
随机推荐
- javascript 数据类型 -- 分类
一.概念 Javascript 中有6中基本类型(也称 原始类型/原始值): number . sring . boolean . symbol . undefined 和 null ,和1种引用类型 ...
- CSS、常用标签属性
div的样式:[width:宽度 :100像素.height:高度100px.background:背景颜色红色] 内嵌的形式:用<style type="text/css>&l ...
- [GIT] 更新.repo目录
cd .repo/manifests/ git co -f git pull
- AtiveMQ初次连接的 http error:503 连接错误 Prolem accessing /.Reason : Service Unavailable
503错误 说明是服务器内部的错误了 这是 为什么嫩 这是因为你的Linux虚拟机(我用的是centos版本的)的机器名 和 你的 ip地址的映射关系 不一致 导致访问失败 查看机器名的地址:ca ...
- sql_update
学习: http://www.runoob.com/mysql/mysql-tutorial.html replace: update table_name set column = replace ...
- 轻量级C#网络通信组件StriveEngine —— C/S通信开源demo(附源码)
前段时间,有几个研究ESFramework网络通讯框架的朋友对我说,ESFramework有点庞大,对于他们目前的项目来说有点“杀鸡用牛刀”的意思,因为他们的项目不需要文件传送.不需要P2P.不存在好 ...
- 1.2 Why need pluggable?
When Android programmers write new features, bugs, or even crashes will exits in their App. Once a t ...
- Java线程池核心原理剖析
在系统开发时,我们经常会遇到“池”的概念.使用池一种以空间换时间的做法,通常在内存中事先保存一系列整装待命的对象,以供后期供其他对象随时调用.常见的池有:数据库连接池,socket连接池,线程池等.今 ...
- MySQL乐观锁为什么可以防止并发
问题引入 本文介绍的是最常用的也是mysql默认的innoDB引擎 Read committed隔离级别下事物的并发.这种情况下的事物特点是 读:在一个事物里面的select语句 不会受到其他事物(不 ...
- [Swift]LeetCode125. 验证回文串 | Valid Palindrome
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignori ...