c++笔记容器详细介绍
C++标准库提供了多种容器来存储和管理数据。这些容器属于<vector>
, <list>
, <deque>
, <map>
, <set>
, <unordered_map>
, <unordered_set>
等头文件中。这些容器各有优缺点,适用于不同的场景。下面详细介绍几种主要的容器及其支持的函数。
1. std::vector
std::vector
是动态数组,可以高效地进行随机访问,支持动态调整大小。
头文件:<vector>
主要函数:
push_back
:在末尾添加元素。pop_back
:移除末尾元素。at
:访问指定位置的元素,带有边界检查。operator[]
:访问指定位置的元素,不带边界检查。front
:访问第一个元素。back
:访问最后一个元素。data
:返回底层数组的指针。size
:返回元素个数。capacity
:返回当前容量。resize
:调整大小。reserve
:预留空间。clear
:清空所有元素。empty
:检查容器是否为空。insert
:在指定位置插入元素。erase
:移除指定位置的元素。
2. std::list
std::list
是双向链表,支持高效的插入和删除操作。
头文件:<list>
主要函数:
push_back
:在末尾添加元素。push_front
:在头部添加元素。pop_back
:移除末尾元素。pop_front
:移除头部元素。front
:访问第一个元素。back
:访问最后一个元素。size
:返回元素个数。clear
:清空所有元素。empty
:检查容器是否为空。insert
:在指定位置插入元素。erase
:移除指定位置的元素。remove
:移除所有与指定值相等的元素。sort
:对元素进行排序。merge
:合并两个已排序的链表。splice
:将一个链表中的元素移动到另一个链表中。
3. std::deque
std::deque
是双端队列,可以高效地在头部和尾部进行插入和删除操作。
头文件:<deque>
主要函数:
push_back
:在末尾添加元素。push_front
:在头部添加元素。pop_back
:移除末尾元素。pop_front
:移除头部元素。at
:访问指定位置的元素,带有边界检查。operator[]
:访问指定位置的元素,不带边界检查。front
:访问第一个元素。back
:访问最后一个元素。size
:返回元素个数。clear
:清空所有元素。empty
:检查容器是否为空。insert
:在指定位置插入元素。erase
:移除指定位置的元素。
4. std::map
std::map
是有序关联容器,以键值对的形式存储元素,键是唯一的。
头文件:<map>
主要函数:
operator[]
:访问或插入指定键的元素。at
:访问指定键的元素,带有边界检查。insert
:插入键值对。erase
:移除指定键的元素。find
:查找指定键的元素。count
:返回指定键的元素个数(对于map
,结果是0或1)。size
:返回元素个数。clear
:清空所有元素。empty
:检查容器是否为空。begin
:返回指向第一个元素的迭代器。end
:返回指向最后一个元素后一个位置的迭代器。
5. std::set
std::set
是有序集合容器,只存储键,键是唯一的。
头文件:<set>
主要函数:
insert
:插入元素。erase
:移除指定元素。find
:查找指定元素。count
:返回指定元素的个数(对于set
,结果是0或1)。size
:返回元素个数。clear
:清空所有元素。empty
:检查容器是否为空。begin
:返回指向第一个元素的迭代器。end
:返回指向最后一个元素后一个位置的迭代器。
6. std::unordered_map
std::unordered_map
是无序关联容器,以键值对的形式存储元素,键是唯一的,内部使用哈希表实现。
头文件:<unordered_map>
主要函数:
operator[]
:访问或插入指定键的元素。at
:访问指定键的元素,带有边界检查。insert
:插入键值对。erase
:移除指定键的元素。find
:查找指定键的元素。count
:返回指定键的元素个数(对于unordered_map
,结果是0或1)。size
:返回元素个数。clear
:清空所有元素。empty
:检查容器是否为空。begin
:返回指向第一个元素的迭代器。end
:返回指向最后一个元素后一个位置的迭代器。
7. std::unordered_set
std::unordered_set
是无序集合容器,只存储键,键是唯一的,内部使用哈希表实现。
头文件:<unordered_set>
主要函数:
insert
:插入元素。erase
:移除指定元素。find
:查找指定元素。count
:返回指定元素的个数(对于unordered_set
,结果是0或1)。size
:返回元素个数。clear
:清空所有元素。empty
:检查容器是否为空。begin
:返回指向第一个元素的迭代器。end
:返回指向最后一个元素后一个位置的迭代器。
容器特性和使用注意事项
1. std::vector
- 特性:
- 动态数组,支持快速随机访问。
- 连续存储,能与 C 风格数组兼容。
- 在末尾插入和删除操作效率高(摊销时间复杂度 O(1))。
- 插入和删除操作会导致内存重新分配和元素拷贝(特别是当容器扩容时)。
- 注意事项:
- 适用于需要频繁随机访问元素的场景。
- 避免在中间位置频繁插入和删除元素。
2. std::list
- 特性:
- 双向链表,支持双向遍历。
- 插入和删除操作效率高,O(1)。
- 不支持随机访问,只能通过迭代器遍历。
- 内存使用相对较高,每个节点需要额外存储两个指针。
- 注意事项:
- 适用于需要频繁插入和删除元素的场景。
- 不适用于需要快速随机访问的场景。
3. std::deque
- 特性:
- 双端队列,支持在两端快速插入和删除。
- 随机访问效率高,O(1)。
- 内部由多个连续块组成,分配和管理较为复杂。
- 注意事项:
- 适用于需要在两端进行插入和删除操作的场景。
- 插入和删除操作在中间位置的效率相对较低。
4. std::map
- 特性:
- 有序关联容器,基于红黑树实现。
- 键值对存储,键是唯一的。
- 查找、插入、删除操作效率为 O(log n)。
- 自动按键排序。
- 注意事项:
- 适用于需要有序存储和快速查找的场景。
- 不适用于需要频繁插入和删除的场景。
5. std::set
- 特性:
- 有序集合容器,基于红黑树实现。
- 只存储键,键是唯一的。
- 查找、插入、删除操作效率为 O(log n)。
- 自动按键排序。
- 注意事项:
- 适用于需要有序存储和快速查找的场景。
- 不适用于需要频繁插入和删除的场景。
6. std::unordered_map
- 特性:
- 无序关联容器,基于哈希表实现。
- 键值对存储,键是唯一的。
- 查找、插入、删除操作效率平均为 O(1)。
- 无序存储,插入顺序不定。
- 注意事项:
- 适用于需要快速查找的场景。
- 不适用于需要有序存储的场景。
7. std::unordered_set
- 特性:
- 无序集合容器,基于哈希表实现。
- 只存储键,键是唯一的。
- 查找、插入、删除操作效率平均为 O(1)。
- 无序存储,插入顺序不定。
- 注意事项:
- 适用于需要快速查找的场景。
- 不适用于需要有序存储的场景。
对比表格
特性\容器 | std::vector | std::list | std::deque | std::map | std::set | std::unordered_map | std::unordered_set |
---|---|---|---|---|---|---|---|
随机访问 | 高效 (O(1)) | 不支持 | 高效 (O(1)) | 不支持 | 不支持 | 高效 (O(1)) | 高效 (O(1)) |
插入/删除末尾 | 高效 (摊销 O(1)) | 低效 (O(n)) | 高效 (O(1)) | 中等 (O(log n)) | 中等 (O(log n)) | 高效 (平均 O(1)) | 高效 (平均 O(1)) |
插入/删除头部 | 低效 (O(n)) | 高效 (O(1)) | 高效 (O(1)) | 中等 (O(log n)) | 中等 (O(log n)) | 高效 (平均 O(1)) | 高效 (平均 O(1)) |
插入/删除中间 | 低效 (O(n)) | 高效 (O(1)) | 低效 (O(n)) | 中等 (O(log n)) | 中等 (O(log n)) | 高效 (平均 O(1)) | 高效 (平均 O(1)) |
查找 | 高效 (O(1)) | 低效 (O(n)) | 高效 (O(1)) | 高效 (O(log n)) | 高效 (O(log n)) | 高效 (平均 O(1)) | 高效 (平均 O(1)) |
有序性 | 无序 | 无序 | 无序 | 有序 | 有序 | 无序 | 无序 |
内存使用 | 紧凑 | 高 (额外指针) | 较高 (分块) | 较高 (树结构) | 较高 (树结构) | 较高 (哈希表) | 较高 (哈希表) |
适用场景 | 频繁随机访问 | 频繁插入/删除 | 双端操作频繁 | 有序存储和快速查找 | 有序存储和快速查找 | 快速查找和无序存储 | 快速查找和无序存储 |
使用建议
每种容器在不同的场景中都有其优势,选择合适的容器可以大大提升程序的性能和代码的可维护性:
std::vector
:当需要高效的随机访问和动态调整大小时,使用std::vector
。适合存储大量数据并且需要频繁遍历的情况。std::list
:当需要频繁插入和删除元素,尤其是中间位置的元素时,使用std::list
。适合实现双向链表。std::deque
:当需要高效的头部和尾部操作时,使用std::deque
。适合实现队列和双端队列。std::map
:当需要有序存储和快速查找键值对时,使用std::map
。适合实现有序关联容器。std::set
:当需要有序存储唯一元素时,使用std::set
。适合实现集合操作。std::unordered_map
:当需要无序存储和高效查找键值对时,使用std::unordered_map
。适合实现哈希表。std::unordered_set
:当需要无序存储唯一元素时,使用std::unordered_set
。适合实现无序集合。
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
c++笔记容器详细介绍
C标准库提供了多种容器来存储和管理数据。这些容器属于<vector>, <list>, <deque>, <map>, <set>, <unordered_map>, <unordered_set>等头文件中。这些容器各有优缺点,适用于不同的场景。下面详细介绍几种主要的容器及其…...
![](https://img-blog.csdnimg.cn/direct/b837dd761dac4273baecc91fb23b77bb.png)
CS144 Lab3 TCPSender复盘
一.基础概念 1.TCPSender在TCPSocket中的地位与作用 Lab0中实现了基于内存模拟的流控制-字节流(ByteStream),底层使用std::deque实现,根据最大容量Capacity进行容量控制。个人理解它相当于应用层的输入输出缓存区,用户…...
![](https://img-blog.csdnimg.cn/direct/15fd9ef462d345469cf139fb57a33454.png#pic_center)
建筑可视化中使用云渲染的几大理由
在建筑行业中,可视化技术已成为不可或缺的一部分。无论是设计方案的展示、施工进度的模拟,还是最终效果的呈现,建筑可视化都发挥着至关重要的作用。 建筑可视化是指通过计算机技术和图形学算法,将建筑设计、规划和施工过程中的数据…...
![](https://img-blog.csdnimg.cn/direct/2efc9ba8753e44e19ae516ee2ebb3018.png)
Python数据可视化-地图可视化
1.首先绘制实现数据可视化的思维导图 具体要实现什么功能-怎么处理,先把思路写好 数据来源: 爬取的数据 运行结果: 部分代码: 完整代码请在下方↓↓↓👇获取 转载请注明出处!...
![](https://img-blog.csdnimg.cn/direct/ebf52667e85c4d37bf5054879b8ec06c.png)
leetcode 动态规划(基础版)单词拆分
题目: 题解: 一种可行的dp做法是基于完全背包问题,将s看成是一个背包,wordDict看作是物品,然后往s中放入物品判断最终是否可以变为给定的s即可。这道题和上一题都用到了在dp如何枚举连续子串和状态表示:枚…...
![](https://img-blog.csdnimg.cn/direct/dcfb20f770d94902ad112037555fc0f3.png)
Ubuntu/Linux调试安装南京来可CAN卡
准备好USB rules文件和can driver文件备用! 必做:放置USB rules文件到对应位置处理权限问题 而后:安装内核driver并编译。需求众多依赖编译环境,视情况安装填补。如GCC,G,make等等 进入对应64bit文件夹中,添加权限,执…...
![](https://www.ngui.cc/images/no-images.jpg)
vue2+TS获取到数据后自动叫号写法
1.父组件写法 初始化: //引入子组件 <odialog ref"odialogRef" onSure"onSurea"></odialog> //子传父private onSurea() {// 初始化信息/重新叫号来的数据this.initTabelData()setTimeout(() > {// 播放声音的数据this.search…...
![](https://www.ngui.cc/images/no-images.jpg)
28、架构-边界:微服务的粒度
微服务的粒度 在设计微服务架构时,确定微服务的粒度是一个关键问题。粒度过大或过小都会带来不同的问题,因此需要找到合理的粒度来划分微服务。下面详细探讨微服务粒度的合理范围及其影响因素。 1. 微服务粒度的上下界 微服务的粒度不应该只有唯一正确…...
![](https://img-blog.csdnimg.cn/direct/33d461e4ca89466b91d9d2da4480c9a5.png)
开源API网关-ApacheShenYu首次按照启动遇到的问题
一.背景 公司有API网关产品需求,希望有图形化的后台管理功能。看到了ApacheShenYu,作为Apache的顶级项目,直接认可了。首先,感谢各位大神的付出,初步看这个项目是国内大厂中的大神创立的,在此表示膜拜&…...
![](https://img-blog.csdnimg.cn/direct/2f7fa506dcbb440bae2b95c6c4fb0f15.png)
uniapp获取证书秘钥、Android App备案获取公钥、签名MD5值
一、 uniapp获取证书秘钥 打开uniapp开发者中心下载证书打开cmd输入以下这段代码,下载提供查看到的密钥证书密码就可以了!下载证书在 java 环境下运行才可以 // your_alias 换成 证书详情中的别名,your_keystore.keystore 改成自己的证书文件…...
![](https://www.ngui.cc/images/no-images.jpg)
QT 如何储存多种数据类型(QVariant )
QVariant 是 Qt 框架中用于存储各种数据类型的类。它提供了一个强大的类型系统,允许你在运行时存储和检索多种类型的数据,而不需要在编译时确定类型。QVariant 的主要优点在于它的灵活性和通用性,这使得它在 Qt 的很多组件和机制中都被广泛使…...
![](https://www.ngui.cc/images/no-images.jpg)
持续总结中!2024年面试必问的操作系统面试题(九)
上一篇地址:持续总结中!2024年面试必问的操作系统面试题(八)-CSDN博客 十七、解释什么是操作系统的安全性和它的重要性。 操作系统的安全性(Operating System Security)是指操作系统采取的一系列措施来保…...
![](https://www.ngui.cc/images/no-images.jpg)
操作系统入门 -- 文件管理
操作系统入门 – 文件管理 1.文件管理概述 1.1 文件系统基本功能 目前,计算机内存的容量依然有限,并且其特性决定了数据无法长时间保存,因此把执行的数据以文件形式保存在外存中,等到需要使用时再调入内存。所以,操…...
![](https://www.ngui.cc/images/no-images.jpg)
由浅入深,走进深度学习(2)
今天分享的学习内容主要就是神经网络里面的知识啦,用到的框架就是torch 在这里我也是对自己做一个学习记录,如果不符合大家的口味,大家划走就可以啦 可能没有什么文字或者原理上的讲解,基本上都是代码,但是我还是想说…...
![](https://img-blog.csdnimg.cn/direct/310a788eefd74616aa098f1882f86799.png)
【Python Tips】创建自己的函数包并安装进Anaconda,像引入标准包一样直接import导入
目录 一、引言 二、方法步骤 步骤一:创建包目录结构 步骤二:配置__init__.py文件 步骤三:文件夹外配置setup.py文件 步骤四:终端Pip安装 三、结尾 一、引言 在编写项目代码的时候,有些自定义功能的函数是可以复用的。…...
![](https://img-blog.csdnimg.cn/direct/1d8e038ffefd47028a1edc36afd83bb2.png)
【Python机器学习实战】 | 基于支持向量机(Support Vector Machine, SVM)进行分类和回归任务分析
🎩 欢迎来到技术探索的奇幻世界👨💻 📜 个人主页:一伦明悦-CSDN博客 ✍🏻 作者简介: C软件开发、Python机器学习爱好者 🗣️ 互动与支持:💬评论 &…...
![](https://img-blog.csdnimg.cn/direct/7377356665a94e9e990dfbcb537c521f.png)
备份和还原
stai和dnta snat:源地址转换 内网---外网 内网ip转换成可以访问外网的ip 内网的多个主机可以使用一个有效的公网ip地址访问外部网络 DNAT:目的地址转发 外部用户,可以通过一个公网地址访问服务内部的私网服务。 私网的ip和公网ip做一个…...
![](https://www.ngui.cc/images/no-images.jpg)
Java数组的初始化方法
Java数组的初始化方法 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!在Java编程中,数组是一种非常基础也非常重要的数据结构,它能够存储…...
![](https://www.ngui.cc/images/no-images.jpg)
通过分离有色和无色pdf页面减少打印费
前言 该工具是我认识的一位中科大的大佬在本科毕业的时候做的一个小工具,去打印店打印全彩的毕业论文的话会比较贵,他想到有没有一种方案可以实现有彩色页面的pdf和没有彩色页面的pdf分开打印,前者打印彩色,后者打印黑白…...
![](https://img-blog.csdnimg.cn/direct/df791a3dc1cb4ddabf474bb731dca4c0.png)
c语言--指针
前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文整理c语言中指针的相关知识点。 指针概念 指针存储的就是数据的地址。 直观理解: 李华家是北洋路130号1单元101 用变量处理数据: 我们去李华家拿数据。 用指针处理数据: 我们去北洋路130号1单元101拿数据…...
![](https://img-blog.csdnimg.cn/f9f686b7a5ec435ab24bf9b05ec6429c.jpg)
python-九九乘法表(对齐式1)
[题目描述] 输出九九乘法表,输出格式见样例。输入格式: 无输出格式: 输出乘法表,对齐方式见样例输出。样例输入 无样例输出 来源/分类(难度系数:一星) 完整代码展示: #对齐式1 a[] …...
![](https://www.ngui.cc/images/no-images.jpg)
thinkphp单独为某个接口设置缓存
参考 官方文档 $this->request->cache(__URL__,600);只需要在接口方法的开头添加这个代码即可...
![](https://img-blog.csdnimg.cn/direct/ba352745970a4484a1dbbe22990fe252.png)
OpenCV视觉--视频人脸微笑检测(超详细,附带检测资源)
目录 概述 具体实现 1.加载分类器 2.打开摄像头并识别人脸 3.处理人脸并检测是否微笑 效果 总结 概述 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,广泛应用于图像处理和视频分析等领…...
![](https://img-blog.csdnimg.cn/direct/212f0040ebfe4daf812f83eaea683b69.png)
docker 搭建 AI大数据模型 --- 使用GPU
docker 搭建 AI大数据模型 — 使用GPU方式 搭建本地大模型,最简单的方法!效果直逼GPT 服务器GPU系统HP580 G8P40Rocky9.2 安装程序AnythingLLM前端界面Open WebUIChatOllamaollama 一、AnythingLLM 介绍 AnythingLLM 是 Mintplex Labs Inc. 开发的一…...
![](https://img-blog.csdnimg.cn/direct/3fbe39f0203646289992826c02cddd99.png)
面向对象, 常用类, 集合, 异常, JDBC, mysql数据库 复习
1.面向对象 (1)面向过程和面向对象 ● 面向过程的程序设计思想 (procedure -Oriented Programming),简称POP ● 关注的焦点是过程:过程就是操作数据的步骤。如果某个过程的实现代码重复出 现,那么就可…...
![](https://www.ngui.cc/images/no-images.jpg)
js取数组最大值之Math.max、Math.max.apply
js取数组最大值之Math.max、Math.max.apply Math.maxMath.max.applyapply()第一个参数为什么可以是null 最小值同理 Math.max Math.max(n1,n2,n3,…,nX) 支持传递多个参数,带有较大的值的那个数 Math.max(2,5,3,6,2,4,2,15,9,6,0,1)Math.max.apply apply() 语法&a…...
![](https://www.ngui.cc/images/no-images.jpg)
各种中间件的安装
文章目录 20232306mysql的wondows安装 2023 2306 mysql的wondows安装 常用mysql教程 springboot整合druid连接池SpringBoot配置Druid连接池 mysql的wondows安装 MySQL学习笔记 01、MySQL安装 这个是安装的具体思路 win10 安装 mysql 5.7 msi版的教程图文详解 这个是安装的…...
![](https://www.ngui.cc/images/no-images.jpg)
【Mysql】多表查询、隐式内链接、显式内连接、左外连接、右外连接
多表查询 什么是多表查询 •DQL: 查询多张表,获取到需要的数据 •比如 我们要查询家电分类下 都有哪些商品,那么我们就需要查询分类与商品这两张表 数据准备 创建db3_2 数据库 -- 创建 db3_2 数据库,指定编码 CREATE DATABASE db3_2 CHARACTER SET utf8;创建分类表与商品表 …...
![](https://img-blog.csdnimg.cn/direct/eea23983ebd44fd893f0519a6ed2afc4.png)
Linux驱动开发(三)--新字符设备驱动开发 LED驱动开发升级
1、新字符设备驱动原理 使用 register_chrdev 函数注册字符设备的时候只需要给定一个主设备号即可,但是这样会 带来两个问题 需要我们事先确定好哪些主设备号没有使用 会将一个主设备号下的所有次设备号都使用掉,比如现在设置 LED 这个主设备号为200&…...
![](https://img-blog.csdnimg.cn/direct/8ab7eac28ef44413be08920856a0dd1a.png)
MCU的最佳存储方案CS创世 SD NAND
大家都知道MCU是一种"麻雀"虽小,却"五脏俱全"的主控。它的应用领域非常广泛,小到手机手表,大到航空航天的设备上都会用到MCU.市面上目前几个主流厂商有意法半导体(其中最经典的一款就是STM32系列)…...
![](https://img-blog.csdnimg.cn/img_convert/55d46eba4dfb765c1d096fd83eed929e.jpeg)
40岁学习java是否需要报班学习?
在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「java的资料从专业入门到高级教程」, 点个关注在评论区回复“666”之后私信回复“666”,全部无偿共享给大家!!!应该不需要。各种公开免费的…...
![](https://img-blog.csdnimg.cn/direct/17449499e847411487d6b919b721b881.png)
Vitis Accelerated Libraries 学习笔记--OpenCV 运行测试
目录 1. 简介 2. 实例测试 2.1 实例介绍 2.2 创建工程 2.2.1 创建工程 2.2.2 获取路径 2.2.3 设置路径 2.2.4 打开工程 2.2.5 添加文件 2.2.6 启动 GUI 2.2.7 配置 csim 参数 3 常见错误 3.1 核心共享库报错 4. 总结 1. 简介 在《Vitis Accelerated Libraries …...
![](https://img-blog.csdnimg.cn/direct/f8ff287aea394bcdb063008d7281f1f5.png)
加固三防平板如何提高轨道交通系统的运营效率?
在当今快节奏的社会中,轨道交通系统作为城市交通的重要组成部分,其运营效率的提升对于缓解交通拥堵、满足人们的出行需求以及促进城市的发展具有至关重要的意义。而加固三防平板作为一种先进的技术设备,正逐渐在轨道交通领域发挥着关键作用&a…...
![](https://www.ngui.cc/images/no-images.jpg)
Django 靓号管理系统:实现登录功能
本文将详细介绍如何在 Django 靓号管理系统中实现登录功能,包括用户认证、验证码生成、以及中间件的使用。我们将逐步展示所有相关代码,并附带详细注释。 1. 项目结构 首先,让我们看一下项目的基本结构: number ├── manage.py ├── monaco.ttf ├── number │ …...
![](https://img-blog.csdnimg.cn/direct/372a37fee8914d29b8ecc710b30c37e8.png)
【Solr 学习笔记】Solr 源码启动教程
Solr 源码启动教程 本教程记录了如何通过 IDEA 启动并调试 Solr 源码,从 Solr9 开始 Solr 项目已由 ant 方式改成了 gradle 构建方式,本教程将以 Solr 9 为例进行演示,IDE 选择使用 IntelliJ IDEA。 Solr github 地址:https://gi…...
![](https://www.ngui.cc/images/no-images.jpg)
Java中的事件驱动编程模型
Java中的事件驱动编程模型 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我将为大家介绍Java中的事件驱动编程模型。事件驱动编程模型是一种以事件为核心驱…...
![](https://img-blog.csdnimg.cn/img_convert/67c857e3801a011a6ba13adce8a6eb30.png)
Python 语法基础一
1.变量 python 中变量很简单,不需要指定数据类型,直接使用等号定义就好。python变量里面存的是内存地址,也就是这个值存在内存里面的哪个地方,如果再把这个变量赋值给另一个变量,新的变量通过之前那个变量知道那个变量…...
![](https://img-blog.csdnimg.cn/direct/a7ea45699fa341bfbfe08e680ec81054.png)
从零开始:Spring Boot 中使用 Drools 规则引擎的完整指南
规则引擎作用 规则引擎主要用于将业务逻辑从应用程序代码中分离出来,提高系统的灵活性和可维护性。规则引擎通过预定义的规则来处理输入数据并做出相应的决策,从而实现业务逻辑的自动化和动态调整。 例如 门店信息校验:美团点评在门店信息…...
![](https://img-blog.csdnimg.cn/direct/652557a7dba64016995b040411a8bd84.png)
工业边缘计算网关
1 介绍 HINETG系列边缘计算网关(Linux操作系统),是华辰智通的—款面向工业现场设备接入、数据采集、设备监控的工业级边缘计算网关。采用ARM Cortex-A7 800MHz高性能CPU,拥有以太网、串口、CAN口、IO口等丰富的接口,支持以太网、…...
![](https://img-blog.csdnimg.cn/direct/c2ba3ea375d047a181d29e3e752ef20f.png#pic_center)
【C++ 初阶路】--- 类和对象(末)
目录 一、const成员1.1 取地址及const取地址操作符重载 二、再谈构造函数2.1 构造函数体赋值2.2 初始化列表2.3 explicit关键字 三、static成员3.1 概念3.2 特性 四、友元4.1 友元函数4.2 友元类 五、内部类六、匿名对象 一、const成员 将const修饰的“成员函数”称之为const成…...
![](https://img-blog.csdnimg.cn/direct/730b5a22ac994d14aa8329475b6dc893.png)
bable 【实用教程】
简介 bable 用于将 ES6 的语法编译为 ES5 只关心语法,不关心 API 是否正确。不处理模块化(webpack 会处理) 搭建开发环境 安装相关的包 npm i babel/cli babel/core babel/preset-env新建文件 .babelrc,内容为 { "presets…...
![](https://www.ngui.cc/images/no-images.jpg)
Android中使用startActivityForResult启动活动
Android中使用startActivityForResult启动活动 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!在本文中,我们将深入探讨Android开发中使用startActi…...
![](https://img-blog.csdnimg.cn/img_convert/fe0cecc7af761557ba778ee44784a699.png)
NineData和华为云在一起!提供一站式智能数据库DevOps平台
以GuassDB数据库为底座 NineData和华为云一起 为企业提供 一站式智能数据库DevOps平台 帮助开发者 高效、安全地完成 数据库SQL审核 访问控制、敏感数据保护等 日常数据库相关开发任务 NineData 智能数据管理平台 NineData 作为新一代的云原生智能数据管理平台…...
![](https://www.ngui.cc/images/no-images.jpg)
深入解析 Redisson分布式锁看门狗机制
一、Redisson分布式锁概述 1.1 分布式锁的意义 在分布式系统中,多个节点可能同时访问共享资源,导致数据不一致或竞态条件。分布式锁通过协调不同节点对共享资源的访问,确保数据的一致性和并发访问的安全性。 1.2 Redisson分布式锁的优势 …...
![](https://img-blog.csdnimg.cn/img_convert/a43d1d55ab4b30fc33ac4eee6761f4ec.png)
Apache Arrow 和数据的未来:开放标准推动人工智能发展
Apache Arrow 是一种开源列式内存格式,适用于平面数据和分层数据。在现代数据湖中,开放数据格式(如 Apache Arrow)位于现代对象存储的存储层中。这些格式成为对象存储中的对象。 在最新版本中,Apache Arrow 宣布计划从…...
![](https://img-blog.csdnimg.cn/direct/d981758508a0438b987ad77d780efd6f.png)
Vue项目生产环境的打包优化
Vue项目生产环境的打包优化 前言 在这篇文章我们讨论Vue项目生产环境的打包优化,并按步骤展示实际优化过程中的修改和前后对比。 背景 刚开始的打包体积为48.71M 优化 步骤一:删除viser-vue viser-vue底层依赖antv/g2等库一并被删除,…...
![](https://www.ngui.cc/images/no-images.jpg)
oracle数据库之使用Java程序调用存储过程(二十四)
在Oracle数据库中,你可以使用Java程序来调用存储过程。这通常涉及几个步骤:首先,确保你的Java环境能够连接到Oracle数据库;其次,使用JDBC(Java Database Connectivity)来调用存储过程。 以下是…...
![](https://img-blog.csdnimg.cn/img_convert/17921c9293e9f95a93dbe562e26a7db9.webp?x-oss-process=image/format,png)
西电953总分第一、专业课第一考研上岸
今年上岸西电杭研院网信院网络与信息安全专业,总分370分,专业课116分,分别是总分第一名,专业课第一名,感谢研梦的953叶学姐,非常负责,本硕大佬学姐,当年密码学38分选手(满…...
![](https://www.ngui.cc/images/no-images.jpg)
pytorch-模型训练
目录 1. 模型训练的基本步骤1.1 train、test数据下载1.2 train、test数据加载1.3 Lenet5实例化、初始化loss函数、初始化优化器1.4 开始train和test 2. 完整代码 1. 模型训练的基本步骤 以cifar10和Lenet5为例 1.1 train、test数据下载 使用torchvision中的datasets可以方便…...
![](https://img-blog.csdnimg.cn/direct/a9a9a3e77fd04117bc1c9036aabf51f9.png)
Linux /proc目录总结
1、概念 在Linux系统中,/proc目录是一个特殊的文件系统,通常被称为"proc文件系统"或"procfs"。这个文件系统以文件系统的方式为内核与进程之间的通信提供了一个接口。/proc目录中的文件大多数都提供了关于系统状态的信息࿰…...
![](https://img-blog.csdnimg.cn/direct/038071ef7af445cb91d544495a61a12c.png)
网安小贴士(6)TCP/IP分层
一、前言 1983年,美国国防部决定将TCP/IP作为所有计算机网络的标准协议,这标志着TCP/IP正式成为互联网的基础协议。随着个人计算机的普及和网络技术的发展,TCP/IP模型被广泛应用于各种网络环境中,包括局域网(LAN&#…...
![](https://i-blog.csdnimg.cn/direct/6c93dbebab3e40feb3c3ed17b4f88bdf.png)
springboot的企业培训管理系统-计算机毕业设计源码50804
摘要 本研究旨在开发一套高效、安全、易用的springboot企业培训管理系统。该系统致力于提升企业的培训管理效率,确保培训质量与效果的持续优化。通过整合先进的AI技术,在企业培训管理中发挥着不可或缺的作用。 通过采用Java作为主要开发语言,…...
![](https://img-blog.csdnimg.cn/direct/920887c789c34689979381bbf16e9d62.png)
图解 Kafka 架构
写在前面 Kafka 是一个可横向扩展,高可靠的实时消息中间件,常用于服务解耦、流量削峰。 好像是 LinkedIn 团队开发的,后面捐赠给apache基金会了。 kafka 总体架构图 Producer:生产者,消息的产生者,是消息的…...
![](https://i-blog.csdnimg.cn/direct/03471bbe21af4c1a9291c84d13434d11.jpeg)
ionic7 使用Capacitor打包 apk 之后,设置网络权限
报错处理 在打包的时候遇到过几个问题,这里记录下来两个 Visual Studio Code运行ionic build出错显示ionic : 无法加载文件 ionic 项目通过 android studio 打开报错 capacitor.settings.gradle 文件不存在 ionic7 项目初始化以及打包 apk 这篇文章讲到了如果安装…...
![](https://www.ngui.cc/images/no-images.jpg)
Linux系统安全加固:无需WAF也能有效防御黑客攻击
Web应用防火墙(WAF)是现代网络安全架构中的重要组成部分,用于保护Web应用程序免受各种攻击。然而,对于基于Linux的服务器,即使没有部署WAF,通过合理的配置和策略,依然能够构建起坚固的防线。本文…...
![](https://i-blog.csdnimg.cn/direct/216918a4a6564944ba9eed9d688a70d5.png)
重载一元运算符
自增运算符 #include<iostream> using namespace std; class CGirl { public:string name;int ranking;CGirl() { name "zhongge"; ranking 5; }void show() const{ cout << "name : "<<name << " , ranking : " <…...
![](https://www.ngui.cc/images/no-images.jpg)
20万级技术点满智己L6真不错但更多人会选“34C”
智己L6上市了,权益价19.99万元起步,这个价格标配激光雷达、英伟达的芯片、四轮转向、8295P,就不只是卷了,甚至可能是在赔本卖车。看起来没有不买它的理由了,但事实情况是,大部分人会选择再加5万,买传统豪华品牌。智己L6是真不错在智己公布预售价的时候,我们认为它应该还…...
![](https://www.ngui.cc/images/no-images.jpg)
冠军巡礼丨东风奕派eπ008实力问鼎2024混合动力汽车极限挑战赛!
5月25日-28日,2024混合动力汽车极限挑战赛在新疆激情点燃,这不仅是一场速度与耐力的较量,更是混合动力技术实力的巅峰对决。在这片广袤无垠的大地上,高原巍峨、温差巨大、地貌多样,构成了壮丽而又严苛的天然试炼场。本次挑战赛旨在以公平公正的赛制,为消费者提供更加全面…...
![](https://www.ngui.cc/images/no-images.jpg)
性能强硬+配置更新五十铃纯电版D-MAX或将于2025年上市
近日,五十铃在泰国曼谷国际汽车展览会前发布了D-MAX BEV原型车。据悉,五十铃曾计划到2030年在全球推出多款电动车型,涵盖皮卡、SUV、客车等多个细分市场。本次即将登场的D-MAX BEV则是五十铃计划里的首款纯电动皮卡。根据此前公布的信息,D-MAX BEV虽然是一款纯电皮卡,但其…...
![](https://img-blog.csdnimg.cn/direct/e49af4061e614df1a19e1b3c57acce62.png)
【ai】livekit:Agents 3 : pythonsdk和livekit-agent的可编辑模式下的安装
livekit-agent 依赖于livekit、livekit-api、livekit-protocol 其中livekit就是livekkit-rtc: 包含俩sdk 实时互动sdkReal-time SDK for connecting to LiveKit as a participant livekit-api : 服务端sdk https://pypi.org/project/livekit-api/ livekit的python sdk...
![](https://www.ngui.cc/images/no-images.jpg)
[10] CUDA程序性能的提升 与 流
CUDA程序性能的提升 与 流 1. CUDA程序性能的提升 在本节中,我们会看到用来遵循的基本的一些性能来提升准则,我们会逐一解释它们1.1 使用适当的块数量和线程数量 研究表明,如果块的数量是 GPU 的流多处理器数量的两倍,则会给出最佳性能,不过,块和线程的数量与具体的算法…...
![](https://img-blog.csdnimg.cn/direct/3786e773217c4592bbec946fbb145b5a.png)
IEEE Latex模版踩雷避坑指南
参考文献 原Latex模版 \begin{thebibliography}{1} \bibliographystyle{IEEEtran}\bibitem{ref1} {\it{Mathematics Into Type}}. American Mathematical Society. [Online]. Available: https://www.ams.org/arc/styleguide/mit-2.pdf\bibitem{ref2} T. W. Chaundy, P. R. Ba…...