3. 容器适配器封装了一些基本的容器,使之具备了新的函数功能,包含 stack、queue。 stack:栈 栈是项的有限序列,并满足序列中被删除、检索和修改的项只能是最进插入序列的项(栈顶的项),后进先出。 queue:队列 插入只可以在尾部进行,删除、检索和修改只允许从头部进行,先进先出。 STL 容器用过哪些,查找的时间复...
stack<int> s; stack< int, vector<int> > stk; //覆盖基础容器类型,使用vector实现stk s.empty(); //判断stack是否为空,为空返回true,否则返回false s.size(); //返回stack中元素的个数 s.pop(); //删除栈顶元素,但不返回其值 s.top(); //返回栈顶元素的值,但不删除此元素 s.push(item); ...
容器适配器,它提供了特定的接口( LIFO 栈操作),这些接口是通过封装另一个底层容器(如 deque, vector, 或 list)的功能实现的。这种设计允许 stack 继承底层容器的效率和存储能力,同时提供简化的接口以满足特定的数据结构需求。 指定底层容器的类型,deque 被用作默认容器。deque(双端队列)是一个高效的序列容器,允许...
stack 【stack:栈】(学过数据结构的熟的不能再熟了吧) 理解为栈。特点是 ①先入后出 ②只能操作栈顶元素 需提供头文件#include <stack> 由于栈的特性,只能对栈顶元素进行操作,故不可使用.begin()方法和.end()方法等,同时亦不可使用通用迭代器。 创建 不可指定大小。 1stack <int> s; 入栈 使用.push...
stack 是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行 元素的插入与提取操作。 stack 标准容器 vector、deque、list 均符合这些需求,默认情况下,如果没有为 stack 指定特定的底层容器, 默认情况下使用 deque。 stack ...
clear()函数把vector清空 需要注意了,基本都是有clear()函数的,除了stack,queue,priority_queue这3个函数是没有clear()函数的.需要清空的话就只能重新定义了. 迭代器 迭代器就像STL容器的指针,可以用星号*操作符解除引用. 一个保存int的vector的迭代器声明方法为:vector<int>::iterator it,这里其实可以使用auto ...
C++STL之Set容器 1. 简介 Set(集合)属于关联式容器,也是STL中最实用的容器,关联式容器依据特定的排序准则,自动为其元素排序。Set集合的底层使用一颗红黑树(可能读者对此不太了解,等但学到树论与图论的章节的时候就会明白原因),其属于一种非线性的数据结构,每一次插入数据都会自动进行排序,注意,不是需要排序时再...
通过案例分析,如评委打分系统,应用STL容器如vector、deque实现数据存储和排序,计算平均分,展示了STL在实际应用中的强大功能。最后,栈容器(stack)和队列容器(queue)分别实现先进后出和先进先出的数据结构。stack支持入栈(push)、出栈(pop)、清空(clear)等操作。queue实现队列的插入(push)、...
stack:实现先进后出的数据结构,支持入栈、出栈、清空等操作。queue:实现先进先出的数据结构,适用于任务调度等场景,支持插入、删除、清空等功能。list:采用双向循环链表结构,实现灵活的数据插入和删除,但遍历速度和内存占用相对较高。STL中的string类:提供丰富成员函数,如查找、拷贝、删除、插入、...
//共享栈的数据类型#define MaxSize10//定义空间存储的最大元素typedef struct SqStack{int data[MaxSize];//存储数据的静态数组int top_a;//栈a的栈顶指针int top_b;//栈b的栈顶指针}SqStack;//初始化共享栈voidInitStack(SqStack*S){assert(S);//通过断言来对指针进行判空S->top_a=-1;//将栈a...