当前位置: 首页 > news >正文

常见数据结构

1.数组
vector
2.链表
list
双向链表,不能通过下标找元素
3.栈
stack
4.队列
queue
优先队列priority_queue. 默认队头为最大值,可以用来任务调度,图算法,霍夫曼树
5.双端队列
deque
在这里插入图片描述
6.集合
set multiset
在这里插入图片描述

s.begin()					//返回指向第一个元素的迭代器
s.end()						//返回指向最后一个元素的迭代器
s.clear()					//清除所有元素
s.count()					//返回某个值元素的个数
s.empty()					//如果集合为空,返回true,否则返回false
s.equal_range()				//返回集合中与给定值相等的上下限的两个迭代器
s.erase()					//删除集合中的元素
s.find(k)					//返回一个指向被查找到元素的迭代器
s.insert()					//在集合中插入元素
s.lower_bound(k)			//返回一个迭代器,指向键值大于等于k的第一个元素
s.upper_bound(k)			//返回一个迭代器,指向键值大于k的第一个元素
s.max_size()				//返回集合能容纳的元素的最大限值
s.rbegin()					//返回指向集合中最后一个元素的反向迭代器
s.rend()					//返回指向集合中第一个元素的反向迭代器
s.size()					//集合中元素的数目

7.映射
map unordered_map

map:

优点:

有序性,这是map结构最大的优点,其元素的有序性在很多应用中都会简化很多的操作
红黑树,内部实现一个红黑书使得map的很多操作在lgn的时间复杂度下就可以实现,因此效率非常的高
缺点: 空间占用率高,因为map内部实现了红黑树,虽然提高了运行效率,但是因为每一个节点都需要额外保存父节点、孩子节点和红/黑性质,使得每一个节点都占用大量的空间

适用处:对于那些有顺序要求的问题,用map会更高效一些

unordered_map:

优点: 因为内部实现了哈希表,因此其查找速度非常的快
缺点: 哈希表的建立比较耗费时间
适用处:**对于查找问题,unordered_map会更加高效一些,**因此遇到查找问题,常会考虑一下用unordered_map
总结:

内存占有率的问题就转化成红黑树 VS hash表 , 还是unorder_map占用的内存要高。
但是unordered_map执行效率要比map高很多
对于unordered_map或unordered_set容器,其遍历顺序与创建该容器时输入的顺序不一定相同,因为遍历是按照哈希表从前往后依次遍历的


http://www.mrgr.cn/news/81197.html

相关文章:

  • python开发:爬虫示例——GET和POST请求处理
  • 基于SpringBoot养老院平台系统功能实现五
  • 云中漫步:精工细作铸就免费公益刷步平台
  • directx12 3d+vs2022游戏开发第三章 笔记五 变换
  • GraphRAG 简介
  • Conda的一些常用命令
  • Krita安装krita-ai-diffusion工具搭建comfyui报错没有ComfyUI_IPAdapter_plus解决办法
  • 设计一个监控摄像头物联网IOT(webRTC、音视频、文件存储)
  • Python(二)str、list、tuple、dict、set
  • 直流有刷电机多环控制(PID闭环死区和积分分离)
  • leetcode 704. 二分查找
  • 【星海随笔】高级系统编辑
  • ARP协议的工作原理
  • 双足机器人《荣耀机甲H1》到手体验
  • docker下载镜像设置
  • 重温设计模式--备忘录模式
  • 谷歌开发者工具-元素篇
  • 重温设计模式--状态模式
  • ArrayList类 (顺序表)
  • Linux的VIM基本操作
  • 两台主机传送数据: transfer files between servers使用rsync命令
  • Linux网络——UDP的运用
  • UE5 移植Editor或Developer模块到Runtime(以运行时弹窗为例)
  • Dapper
  • C++设计模式:组合模式(公司架构案例)
  • 【IC】TSMC先进工艺发展历程--从N5到A16,从A16到未来