STL
假期再过一遍STL
shiroi.
辣鸡初学者
展开
-
【小案例】-员工分组
案例描述公司今天招聘了10个员工(ABCDEFGHIJ),10名员工进入公司之后,需要指派员工在那个部门工作员工信息有: 姓名 工资组成;部门分为:策划、美术、研发随机给10名员工分配部门和工资通过multimap进行信息的插入 key(部门编号) value(员工)分部门显示员工信息实现步骤创建10名员工,放到vector中遍历vector容器,取出每个员工,进行随机分组分组后,将员工部门编号作为key,具体员工作为value,放入到multimap容器中分部门显示员工信息代码:原创 2021-08-18 08:54:51 · 221 阅读 · 0 评论 -
【map/multimap】容器
map基本概念简介:map中所有元素都是pairpair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)所有元素都会根据元素的键值自动排序本质:map/multimap属于关联式容器,底层结构是用二叉树实现。优点:可以根据key值快速找到value值map和multimap区别:map不允许容器中有重复key值元素multimap允许容器中有重复key值元素map构造和赋值#include <iostream>#include <map原创 2021-08-17 09:14:16 · 107 阅读 · 0 评论 -
【set/multiset】容器
set基本概念简介:所有元素都会在插入时自动被排序本质:set/multiset属于关联式容器,底层结构是用二叉树实现。set和multiset区别:set不允许容器中有重复的元素multiset允许容器中有重复的元素set构造和赋值#include <iostream>#include <set>using namespace std;void printSet(set<int> &s){ for(set<int>原创 2021-08-17 08:51:02 · 111 阅读 · 0 评论 -
【list】容器
list基本概念功能:将数据进行链式存储链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的链表的组成:链表由一系列结点组成结点的组成:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域STL中的链表是一个双向循环链表由于链表的存储方式并不是连续的内存空间,因此链表list中的迭代器只支持前移和后移,属于双向迭代器list的优点:采用动态存储分配,不会造成内存浪费和溢出链表执行插入和删除操作十分方便,修改指针即可,不需要移动大量原创 2021-08-16 10:14:09 · 70 阅读 · 0 评论 -
【queue】容器
概念:Queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出队列容器允许从一端新增元素,从另一端移除元素队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为队列中进数据称为 — 入队 push队列中出数据称为 — 出队 popqueue 常用接口#include <iostream>#include <queue>#include <string>using namespace std;clas原创 2021-08-16 08:58:57 · 107 阅读 · 0 评论 -
【stack】容器
概念:stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为栈中进入数据称为 — 入栈 push栈中弹出数据称为 — 出栈 popstack的常用接口#include <iostream>#include <stack>using namespace std;//栈容器常用接口void test01(){ //创建栈容器,栈容器必须符合先进后出原创 2021-08-16 08:46:22 · 68 阅读 · 0 评论 -
【小案例】-评委打分
题目:有五名选手:选手ABCDE,10个评委分别对每一位选手打分,去掉最高分和最低分,取平均分思路:1.创建五名选手,放到vector中2.遍历vector容器,取出每一位选手,执行for循环,可以把10位评委的打分放到的deque中3.sort对deque中的分数进行排序,去掉最高分和最低分4.deque遍历一遍,累加总分5.求平均值代码:#include <iostream>#include <string>#include <deque>#i原创 2021-08-15 12:03:51 · 175 阅读 · 0 评论 -
【string】容器
本质:string是C++风格的字符串,而string本质上是一个类string和char * 区别:char * 是一个指针string是一个类,类内部封装了char*,管理这个字符串,是一个char型的容器。特点:string 类内部封装了很多成员方法例如:查找find,拷贝copy,删除delete 替换replace,插入insertstring管理char所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责string构造函数#include <iostream&原创 2021-08-15 08:56:53 · 95 阅读 · 0 评论 -
【vector】容器
功能:vector数据结构和数组非常相似,也称为单端数组vector与普通数组区别:不同之处在于数组是静态空间,而vector可以动态扩展动态扩展:并不是在原空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝新空间,释放原空间vector容器的迭代器是支持随机访问的迭代器vector构造函数#include <iostream>#include <vector>using namespace std;void printVector(vector&l原创 2021-08-14 10:45:41 · 63 阅读 · 0 评论 -
【Deque容器】
功能:双端数组,可以对头端进行插入删除操作deque与vector区别:vector对于头部的插入删除效率低,数据量越大,效率越低deque相对而言,对头部的插入删除速度回比vector快vector访问元素时的速度会比deque快,这和两者内部实现有关deque内部工作原理:deque内部有个中控器,维护每段缓冲区中的内容,缓冲区中存放真实数据中控器维护的是每个缓冲区的地址,使得使用deque时像一片连续的内存空间deque容器的迭代器也是支持随机访问的deque构造函数#incl原创 2021-08-14 09:39:31 · 84 阅读 · 0 评论