c++ 顺序容器适配器

第一次看到stack,以为它是一个和vector同等地位的容器,其实不是

官方解释:stacks are a type of container adaptor, specifically designed to a LIFO context(last-in-first-out), where elements are inserted and extracted only from one end of the container

其实我们手机充电时,连接usb口和插孔的那个大家伙,就是适配器。本质上,适配器是一种机制,能使某种事物的行为看起来像另外一种事物一样。

先贴一个stack应用的例子吧:

 1 #include <iostream>
 2 #include <stack>
 3
 4 using namespace std;
 5
 6 int main()
 7 {
 8     stack<int> intStack;
 9     for(size_t i = 0; i != 10; i++)
10         intStack.push(i);
11     while(!intStack.empty){
12         int val = intStack.top();  //返回栈顶元素,但不弹出
13         cout << val;
14         intStack.pop();  //弹出栈顶元素,但不返回该元素值
15     }
16     cout << endl;
17     return 0;
18 }

seg_container_adaptor_stack

时间: 2024-11-04 16:52:52

c++ 顺序容器适配器的相关文章

C++容器总结1——顺序容器和顺序容器适配器

容器 容器是容纳特定类型对象的集合,容器的类型分为顺序容器,容器适配器和关联容器,顺序容器将单一类型元素聚集起来成为容器,然后根据位置来存储和访问这些元素. 顺序容器的元素排列次序与元素值无关,而是由元素添加到容器里的次序决定.标准库定义了三种顺序容器类型:vector,list和deque.他们得差别在于访问元素的方式,以及添加或删除元素相关操作的运行代价. 适配器是根据原始容器类型所提供的操作,通过定义新的操作接口,来适应基础的容器类型.顺序容器适配器包括stack,queue和priori

C++ Primer 第九章顺序容器

一.综述 <vector>:可变大小数组.支持快速随机访问.在尾部之外的位置插入或删除元素可能很慢. <deque>:双端队列.支持快速随机访问.在头尾位置插入/删除速度很快. <list>:双向链表.只支持双向顺序访问.在list中任何位置进行插入/删除操作速度都很快. <forward_list>:单向链表.只支持单向顺序访问.在链表任何位置进行插入/删除操作速度都很快. <array>:固定大小数组.支持快速随机访问.不能添加或删除元素.

C++ Primer 第四版读书笔记(八)之顺序容器

容器容纳特定类型对象的集合. 标准库vector类型,是一个顺序容器.它将单一类型元素聚集起来称为容器,然后根据位置来存储和访问这些元素,这就是顺序容器.顺序容器的元素排列次序与元素值无关,而是由元素添加到容器里的次序决定. 标准库定义了三种顺序容器类型:vector.list和deque.它们的差别在于访问元素的方式,以及添加或删除元素相关操作的运行代价.标准库还提供了三种容器适配器.实际上,适配器是根据原始的容器类型所提供的操作,通过定义新的操作接口,来适应基础的容器类型. 顺序容器类型 顺

容器适配器

除了顺序容器外,标准库还定义了三个顺序容器适配器:stack.queue和priority_queue.适配器是标准库中的一个通用概念.容器.迭代器和函数都有适配器.本质上,一个适配器是一种机制.能使某种事物的行为看起来像另外一种事物一样.一个容器适配器接受一种已有的容器类型,使其行为看起来像一种不同的类型.例如,stack适配器接受一个顺序容器(除array或forward_list外),并使其操作起来像一个stack一样.下表列出了所有适配器都支持的操作和类型: 所以容器适配器都支持的操作和

C++ primer笔记——第九章 顺序容器

顺序容器的元素按照其位置存储和访问.除了顺序容器之外,标准库还提供了几种关联容器,其元素按照键(key)排序.每组容器都提供一组不同的时间和功能的折中方案.顺序容器根据位置来存储和访问元素,元素的排列次序与元素值无关,而是由元素添加到容器的顺序决定.标准库定义了三种顺序容器:vector.list.dequeue.他们的差别在于元素访问的方式以及添加和删除元素相关操作的运行代价.标准库还提供了三种适配器.适配器是根据原始的容器类型所提供的操作,通过定义新的操作接口来适应基础的容器类型.顺序容器适

c++顺序容器(3)

1.额外的string操作 除了前面大多数顺序容器的共同操作外,string类型还提供了string和c风格字符数组之间的相互转换,且允许我们用下标代替迭代器版本. string s(cp,n);//cp为数组,拷贝前n个,数组需以空字符结尾,拷贝到空字符结束    string s(s2,pos2);//s2为string,从pos2开始的字符拷贝   string s(s2,pos2,len2): s.substr(m,n);取s字符的m位置到n位置 string还有其他insert和era

C++ 顺序容器(vector,list、deque,stack,queue)

顺序容器的种类有:vector,list.deque 顺序容器适配器: stack     //先进后出   栈 queue   //先进先出   队列 priority_queue   //也优先管理级的优先队列 1.头文件 #include <vector> #include <list> #include <deque> //每一种头文件对应一种顺序容器 #include <queue> //队列 优先队列的头文件 #include <stack

C++拾遗(四)——顺序容器

之前一篇博文(<初窥标准库>)简单了解了一种最常用的顺序容器:vector类型.本文将对该文内容进行进一步的学习和完善,继续讨论标准库提供的顺序容器类型.所谓顺序容器,即将单一类型的元素聚集起来成为容器,并根据位置来存储和访问这些元素.标准库定义了三种顺序容器类型:vector,list和deque(double-ended queue双端队列).同时还提供了三种顺序容器适配器(adaptor):stack,queue,priority_queue. 顺序容器 vector 支持快速随机访存

c++之容器适配器

概述: 适配器是标准库中通用的概念,包括容器适配器.函数适配器和迭代器适配器.本质上,适配器是使一事物的行为类似于另一事物的行为的一种机制.容器适配器让一种已存在的容器类型采用另一种不同的抽象类型的工作方式实现.标准库提供了三种顺序容器适配器:queue.priority_queue和stack. 容器适配器类型 关联的容器类型 stack vector.list.deque queue(push_front运算) list.deque priority_queue(随机访问) vector.d