首页 > 技术文章 > C++——基础容器

xingchong 2021-07-23 11:31 原文

vector

queue

stack

c++ stl栈stack的头文件为: 

#include <stack> 

c++ stl栈stack的成员函数介绍

操作 比较和分配堆栈

empty() 堆栈为空则返回真

pop() 移除栈顶元素

push() 在栈顶增加元素

size() 返回栈中元素数目

top() 返回栈顶元素

栈(stack)是限制插入和删除只能在一个位置上进行的线性表,该位置在表的末端,叫做栈顶。添加元素只能在尾节点后添加,删除元素只能删除尾节点,查看节点也只能查看尾节点。添加、删除、查看依次为入栈(push)、出栈(pop)、栈顶节点(top)。形象的说,栈是一个先进后出(LIFO)表,先进去的节点要等到后边进去的节点出来才能出来。

栈有两种是实现结构,一种是顺序存储结构,也就是利用数组实现,一种是链式存储结构,可以用单链表实现。数组实现栈很简单,用一个下标标记top来表示栈顶,top==-1时,栈空,top==0时,表示栈里只有一个元素,通过访问top为下标的数组元素即可。出栈top自减,入栈top自加就OK了。

单链表实现栈要比单链表的实现简单点。我们通过在表的尾端插入来实现push,通过删除尾节点来实现pop,获取尾节点的元素来表示top。

 

 

map   

当key为整数时,默认为键自增 

iterator lower_bound(const key_type& _Keyval):返回一个迭代器,指向键值 >= _Keyval 的第一个元素;

iterator upper_bound(const key_type& _Keyval):返回一个迭代器,指向键值 > _Keyval 的第一个元素。

这两个函数,如果找不到这样一个元素,即:
若容器内所有节点都比 _Keyval 小,则返回值:map.end(),若容器内所有节点都比 _Keyval 大,则返回值:map.begin()。

for(auto it=vmap.begin(); it!=vmap.end(); it++){ }  迭代器指针,可以自增、自减、判等, 但不能比较大小。

 

unorder_map

pair

推荐阅读