【自定义函数】编码-查询-匹配
目录
- 自定义编码匹配
- 编码匹配改进
- sheet来源汇总
- 来源汇总改进
- END
自定义编码匹配
在wps vb环境写一个新的excel函数名为编码匹配,第一个参数指定待匹配文本所在单元格(相对引用),第二个参数指定关键词区域(绝对引用,一行或者一列单元格),第三个参数指定一个自定义编码区域(绝对引用一行或者一列,但是要检查其长度是否与关键词区域相等,不等则显示错误),完成参数填写以后,将参数2中每个关键词依次在参数1中进行匹配,如果存在则记录其次序,返回值参数3中与改次序相同的自定义编码文本,如果存在多个匹配结果,用逗号间隔后返回
gpt错误是把关键词和编码定义为了String,应该是Variant
改进:跳过关键词的空值,这样引用区域可以预留空间
Function 编码匹配(待匹配文本 As Range, 关键词区域 As Range, 自定义编码区域 As Range) As StringDim 关键词() As Variant ' 关键词数组Dim 编码() As Variant ' 编码数组Dim 匹配结果 As String ' 最终匹配结果Dim i As Long ' 循环变量Dim 匹配次序 As Collection ' 用于存储匹配次序Dim 匹配项 As Variant ' 用于遍历匹配次序集合' 检查关键词区域和自定义编码区域的长度是否相等If 关键词区域.Count <> 自定义编码区域.Count Then编码匹配 = "错误:关键词区域和自定义编码区域长度不匹配"Exit FunctionEnd If' 将关键词区域和自定义编码区域的值存入数组关键词 = 关键词区域.Value编码 = 自定义编码区域.Value' 检查待匹配文本是否为空If IsEmpty(待匹配文本.Value) Or Trim(待匹配文本.Value) = "" Then编码匹配 = ""Exit FunctionEnd If' 初始化匹配次序集合Set 匹配次序 = New Collection' 遍历关键词区域,检查关键词是否在待匹配文本中For i = LBound(关键词, 1) To UBound(关键词, 1)' 检查关键词是否为空If Not IsEmpty(关键词(i, 1)) And Trim(关键词(i, 1)) <> "" Then' 检查关键词是否在待匹配文本中If InStr(1, 待匹配文本.Value, 关键词(i, 1), vbTextCompare) > 0 Then匹配次序.Add iEnd IfEnd IfNext i' 如果没有匹配结果,返回空字符串If 匹配次序.Count = 0 Then编码匹配 = ""Exit FunctionEnd If' 根据匹配次序获取对应的自定义编码For Each 匹配项 In 匹配次序If 匹配结果 = "" Then匹配结果 = 编码(匹配项, 1)Else匹配结果 = 匹配结果 & "," & 编码(匹配项, 1)End IfNext 匹配项' 返回最终结果编码匹配 = 匹配结果
End Function
编码匹配改进
对以下代码进行修改和改进,以提供个性化的匹配,
做一些预处理,先用一个另外的’关键词排序数组’将’关键词’中的数列根据字符串长度升序排列,随后自上而下遍历,将较短的关键词在比它长的其他所有关键词中进行搜索,如果匹配成功,较短一方添加到’上级’数组,较长一方添加到’下级’数组,
在For i = LBound(关键词, 1) To UBound(关键词, 1)这个遍历关键词过程中,如果当前关键词在上级数组中且待匹配文本搜索成功,请将所有的下级数组中的关键词在待匹配文本中进行搜索,如果有一个下级数组关键词匹配成功,说明这个待匹配文本可能是对应下级数组关键词的编码,而不适用当前上级关键词对应的编码,所以不添加匹配次序
Function 编码匹配(待匹配文本 As Range, 关键词区域 As Range, 自定义编码区域 As Range) As StringDim 关键词() As Variant ' 关键词数组Dim 编码() As Variant ' 编码数组Dim 匹配结果 As String ' 最终匹配结果Dim i As Long, j As Long ' 循环变量Dim 匹配次序 As Collection ' 用于存储匹配次序Dim 匹配项 As Variant ' 用于遍历匹配次序集合Dim 上级数组() As Boolean ' 标记是否为上级关键词Dim 下级数组() As Collection ' 存储每个关键词的下级关键词' 检查关键词区域和自定义编码区域的长度是否相等If 关键词区域.Count <> 自定义编码区域.Count Then编码匹配 = "错误:关键词区域和自定义编码区域长度不匹配"Exit FunctionEnd If' 将关键词区域和自定义编码区域的值存入数组关键词 = 关键词区域.Value编码 = 自定义编码区域.Value' 检查待匹配文本是否为空If IsEmpty(待匹配文本.Value) Or Trim(待匹配文本.Value) = "" Then编码匹配 = ""Exit FunctionEnd If' 初始化匹配次序集合和上级/下级数组Set 匹配次序 = New CollectionReDim 上级数组(LBound(关键词, 1) To UBound(关键词, 1))ReDim 下级数组(LBound(关键词, 1) To UBound(关键词, 1))For i = LBound(关键词, 1) To UBound(关键词, 1)Set 下级数组(i) = New CollectionNext i' 按字符串长度对关键词进行排序Dim 排序数组() As VariantReDim 排序数组(LBound(关键词, 1) To UBound(关键词, 1))For i = LBound(关键词, 1) To UBound(关键词, 1)排序数组(i) = Array(i, Len(Trim(关键词(i, 1))))Next iQuickSort 排序数组, LBound(排序数组), UBound(排序数组)' 遍历排序后的关键词,构建上级和下级数组For i = LBound(排序数组) To UBound(排序数组)Dim 当前关键词索引 As Long当前关键词索引 = 排序数组(i)(0)For j = i + 1 To UBound(排序数组)Dim 比较关键词索引 As Long比较关键词索引 = 排序数组(j)(0)If InStr(1, 关键词(比较关键词索引, 1), 关键词(当前关键词索引, 1), vbTextCompare) > 0 Then上级数组(比较关键词索引) = True下级数组(当前关键词索引).Add 比较关键词索引End IfNext jNext i' 遍历关键词区域,检查关键词是否在待匹配文本中For i = LBound(关键词, 1) To UBound(关键词, 1)' 检查关键词是否为空If Not IsEmpty(关键词(i, 1)) And Trim(关键词(i, 1)) <> "" Then' 检查关键词是否在待匹配文本中If InStr(1, 待匹配文本.Value, 关键词(i, 1), vbTextCompare) > 0 Then' 检查是否为上级关键词If Not 上级数组(i) Then匹配次序.Add iElse' 检查下级关键词是否匹配成功Dim 下级关键词匹配成功 As Boolean下级关键词匹配成功 = FalseDim 下级关键词 As VariantFor Each 下级关键词 In 下级数组(i)If InStr(1, 待匹配文本.Value, 关键词(下级关键词, 1), vbTextCompare) > 0 Then下级关键词匹配成功 = TrueExit ForEnd IfNext 下级关键词' 如果没有下级关键词匹配成功,则添加当前上级关键词If Not 下级关键词匹配成功 Then匹配次序.Add iEnd IfEnd IfEnd IfEnd IfNext i' 如果没有匹配结果,返回空字符串If 匹配次序.Count = 0 Then编码匹配 = ""Exit FunctionEnd If' 根据匹配次序获取对应的自定义编码For Each 匹配项 In 匹配次序If 匹配结果 = "" Then匹配结果 = 编码(匹配项, 1)Else匹配结果 = 匹配结果 & "," & 编码(匹配项, 1)End IfNext 匹配项' 返回最终结果编码匹配 = 匹配结果
End Function' 快速排序算法
Sub QuickSort(arr, ByVal first As Long, ByVal last As Long)Dim lower As Long, upper As Long, pivot As Variant, temp As Variantlower = first: upper = lastpivot = arr((first + last) \ 2)(1)Do While lower <= upperDo While (arr(lower)(1) < pivot And lower < last)lower = lower + 1LoopDo While (pivot < arr(upper)(1) And upper > first)upper = upper - 1LoopIf lower <= upper Thentemp = arr(lower)arr(lower) = arr(upper)arr(upper) = templower = lower + 1upper = upper - 1End IfLoopIf first < upper Then QuickSort arr, first, upperIf lower < last Then QuickSort arr, lower, last
End Sub
sheet来源汇总
在wps vb环境写一个新的excel函数名为来源汇总,第一个参数指定待匹配文本所在单元格(相对引用且不得为空),第二个参数开始指定sheet页(具体方式是选中任意区域,在处理时仅识别sheet名),当第二个参数不为空时增加第三个参数用来添加新的检索sheet页,遍历所有的检索区域,当待匹配文本包含在检索区域的某个单元格的文本值中,将该单元格所在sheet名+单元格位置如“A1”这样的字串添加到文返回值中
考虑检索区域是二维表格,且为该sheet中包含所有数据的最小矩形区域
注意在使用时填A1绝对引用。
Function 来源汇总(待匹配文本 As Range, ParamArray 检索区域() As Variant) As StringDim 匹配结果 As StringDim 区域 As VariantDim 工作表 As WorksheetDim 单元格 As RangeDim 匹配地址 As StringDim 区域索引 As Long' 检查待匹配文本是否为空If IsEmpty(待匹配文本.Value) Or Trim(待匹配文本.Value) = "" Then来源汇总 = "EmptyError"Exit FunctionEnd If' 初始化匹配结果匹配结果 = ""' 遍历所有指定的检索区域For 区域索引 = LBound(检索区域) To UBound(检索区域)' 检查当前区域是否为空If Not IsEmpty(检索区域(区域索引)) Then' 获取区域所在的工作表Set 工作表 = 检索区域(区域索引).Parent' 遍历工作表中的每个单元格(仅在已使用的范围内)For Each 单元格 In 工作表.UsedRange' 检查单元格是否包含待匹配文本If InStr(1, 单元格.Value, 待匹配文本.Value, vbTextCompare) > 0 Then' 构造匹配地址匹配地址 = 工作表.Name & "!" & 单元格.Address(False, False)' 将匹配地址添加到结果中If 匹配结果 = "" Then匹配结果 = 匹配地址Else匹配结果 = 匹配结果 & "," & 匹配地址End IfEnd IfNext 单元格End IfNext 区域索引' 返回最终结果来源汇总 = 匹配结果
End Function
来源汇总改进
进行来源汇总时也对关键词做一个上级和下级的区分,然后在搜索区域匹配时,上级关键词要剔除掉对应的下级关键词的匹配结果
Function 来源汇总(待匹配文本 As Range, ParamArray 检索区域() As Variant) As StringDim 匹配结果 As StringDim 区域 As VariantDim 工作表 As WorksheetDim 单元格 As RangeDim 匹配地址 As StringDim 区域索引 As LongDim 关键词() As VariantDim 上级数组() As BooleanDim 下级数组() As CollectionDim i As Long, j As Long' 检查待匹配文本是否为空If IsEmpty(待匹配文本.Value) Or Trim(待匹配文本.Value) = "" Then来源汇总 = "----"Exit FunctionEnd If' 初始化匹配结果匹配结果 = ""' 获取所有关键词并初始化上级和下级数组ReDim 关键词(1 To 1)ReDim 上级数组(1 To 1)ReDim 下级数组(1 To 1)Set 下级数组(1) = New Collection' 遍历所有指定的检索区域For 区域索引 = LBound(检索区域) To UBound(检索区域)' 检查当前区域是否为空If Not IsEmpty(检索区域(区域索引)) Then' 获取区域所在的工作表Set 工作表 = 检索区域(区域索引).Parent' 遍历工作表中的每个单元格(仅在已使用的范围内)For Each 单元格 In 工作表.UsedRange' 检查单元格是否包含待匹配文本If InStr(1, 单元格.Value, 待匹配文本.Value, vbTextCompare) > 0 Then' 构造匹配地址匹配地址 = 工作表.Name & "!" & 单元格.Address(False, False)' 检查是否为上级关键词If Not 上级数组(i) Then' 添加匹配地址到结果If 匹配结果 = "" Then匹配结果 = 匹配地址Else匹配结果 = 匹配结果 & "," & 匹配地址End IfElse' 检查下级关键词是否匹配成功Dim 下级关键词匹配成功 As Boolean下级关键词匹配成功 = FalseDim 下级关键词 As VariantFor Each 下级关键词 In 下级数组(i)If InStr(1, 单元格.Value, 下级关键词, vbTextCompare) > 0 Then下级关键词匹配成功 = TrueExit ForEnd IfNext 下级关键词' 如果没有下级关键词匹配成功,则添加当前上级关键词If Not 下级关键词匹配成功 ThenIf 匹配结果 = "" Then匹配结果 = 匹配地址Else匹配结果 = 匹配结果 & "," & 匹配地址End IfEnd IfEnd IfEnd IfNext 单元格End IfNext 区域索引' 返回最终结果来源汇总 = 匹配结果
End Function
END
相关文章:
【自定义函数】编码-查询-匹配
目录 自定义编码匹配编码匹配改进 sheet来源汇总来源汇总改进 END 自定义编码匹配 在wps vb环境写一个新的excel函数名为编码匹配,第一个参数指定待匹配文本所在单元格(相对引用),第二个参数指定关键词区域(绝对引用&…...
docker-制作镜像gcc添加jdk运行java程序
最近的项目需要使用java调用c的链接库,.OS文件,一开始准备在jdk的镜像下去安装c的环境,不过安装的内容很多,比较复杂也容易缺很多的包,经过实验,我们决定使用gcc的镜像安装jdk来正确的运行java程序。 基础镜…...
工业相机 SDK 二次开发-Sherlock插件
本文介绍了 sherlock 连接相机时的插件使用。通过本套插件可连接海康的工业相机。 一.环境配置 1. 拷贝动态库 在用户安装 MVS 目录下按照如下路径 Development\ThirdPartyPlatformAdapter 找到目 录为 DalsaSherlock 的文件夹,根据 Sherlock 版本找到…...
智慧消防营区一体化安全管控 2024 年度深度剖析与展望
在 2024 年,智慧消防营区一体化安全管控领域取得了令人瞩目的进展,成为保障营区安全稳定运行的关键力量。这一年,行业在政策驱动、技术创新应用、实践成果及合作交流等方面呈现出多元且深刻的发展态势,同时也面临着一系列亟待解决…...
On to OpenGL and 3D computer graphics
2. On to OpenGL and 3D computer graphics 声明:该代码来自:Computer Graphics Through OpenGL From Theory to Experiments,仅用作学习参考 2.1 First Program Square.cpp完整代码 /// // square.cpp // // OpenGL program to draw a squ…...
python实现http文件服务器访问下载
//1.py import http.server import socketserver import os import threading import sys# 获取当前脚本所在的目录 DIRECTORY os.path.dirname(os.path.abspath(__file__))# 设置服务器的端口 PORT 8000# 自定义Handler,将根目录设置为脚本所在目录 class MyHTT…...
Redis高阶5-布隆过滤器
Redis布隆过滤器 由一个初始值都为零的bit数组和多个哈希函数构成,用来快速判断集合中是否存在某个元素 目的减少内存占用方式不保存数据信息,只是在内存中做一个是否存在的标记flag 布隆过滤器(英语:Bloom Filter࿰…...
Hive关于数据库的语法,warehouse,metastore
关于数据库的语法 在default数据库下,查看其他数据库的表 in 打开控制台 字体大小的设置 Hive默认的库: default, 1/4说明一共有4个库,现在只展示了1个,单击>>所有架构 数据库的删除 方法一: 语法 删除有表的数据库,加cascade 方法二 当前连接的数据库 切换当前数据库…...
Kafka 深入服务端 — 时间轮
Kafka中存在大量的延迟操作,比如延时生产、延时拉取和延时删除等。Kafka基于时间轮概念自定义实现了一个用于延时功能的定时器,来完成这些延迟操作。 1 时间轮 Kafka没有使用基于JDK自带的Timer或DelayQueue来实现延迟功能,因为它们的插入和…...
ubuntu系统docker环境搭建
ubuntu系统docker环境搭建 docker引擎安装 高版本docker引擎安装时已经自带有docker compose 安装参考docker官网Install Docker Engine on Ubuntu 方式一: 在线安装 参考apt方式安装 1、Set up Docker’s apt repository. # Add Dockers official GPG key: …...
安宝特方案 | AR在供应链管理中的应用:提升效率与透明度
随着全球化的不断深入和市场需求的快速变化,企业对供应链管理的要求也日益提高。如何在复杂的供应链环境中提升效率、降低成本,并确保信息的透明度,成为了各大行业亟待解决的问题。而增强现实(AR)技术,特别…...
[ Spring ] Spring Cloud Alibaba Message Stream Binder for RocketMQ 2025
文章目录 IntroduceProject StructureDeclare Plugins and ModulesApply Plugins and Add DependenciesSender PropertiesSender ApplicationSender ControllerReceiver PropertiesReceiver ApplicationReceiver Message HandlerCongratulationsAutomatically Send Message By …...
再述 Dijkstra
再述 Dijkstra 学 Dijkstra 好久了,今天再学了一遍,感觉推翻了好多自己的知识…… 定义 一种用于求非负权值的图的单源最短路径的算法。 方法 已知:如果要求从起始点 s 到某一个点 x 的最短路径,显然只能从某一个已确认为最短…...
大语言模型之prompt工程
前言 随着人工智能的快速发展,我们正慢慢进入AIGC的新时代,其中对自然语言的处理成为了智能化的关键一环,在这个大背景下,“Prompt工程”由此产生,并且正逐渐成为有力的工具... LLM (Large Language Mode…...
JavaScript系列(43)--依赖注入系统实现详解
JavaScript依赖注入系统实现详解 💉 今天,让我们深入探讨JavaScript的依赖注入系统实现。依赖注入是一种设计模式,它通过将依赖关系的创建和管理从代码中分离出来,提高了代码的可维护性和可测试性。 依赖注入基础概念 …...
Mono里运行C#脚本36—加载C#类定义的成员变量和方法的数量
前面分析了加载类和基类的基本过程, 接着来分析一下加载成员变量和方法的数量。 因为我们知道C#语言定义一个类,主要就是定义成员变量,以及那些对此成员变量进行操作的方法, 所以需要使用一种方法来描述C#语言定义类的能力。 一般情况下,主要有两种类型: 普通的类,比如前…...
SWPU 2022 新生赛--web题
奇妙的MD5 进入靶场 然我们输入一个特殊的字符串,然后我到处翻了翻,发现有提示 在MD5中有两个特殊的字符串 0e215962017 //MD5加密后弱比较等于自身 ffifdyop //MD5加密后变成万能密码 这里明显就是万能密码了 输入之后就来到了这个页…...
Windows 靶机常见服务、端口及枚举工具与方法全解析:SMB、LDAP、NFS、RDP、WinRM、DNS
在渗透测试中,Windows 靶机通常会运行多种服务,每种服务都有其默认端口和常见的枚举工具及方法。以下是 Windows 靶机常见的服务、端口、枚举工具和方法的详细说明: 1. SMB(Server Message Block) 端口 445/TCP&…...
记一次Linux共享内存段排除Bug:key值为0x0000000的共享内存段删除不了
本文目录 一、问题情况二、解决方法2.1 通过kill命令删除2.2 通过程序删除 一、问题情况 今天查看共享内存段发现好多共享内存段,而且命令ipcrm -m <shmid>删除不了。 回想了一下,应该是有一些程序跑while循环,或者死循环,…...
RV1126画面质量四:GOP改善画质
一. 什么是 GOP GOP 实际上就是两个 I 帧的间隔,比方说分辨率是 1920 * 1080 50 帧,假设 GOP 为 5,那就是大概 2s 插入一个 I 帧。我们再 回顾下,H264/H265 的帧结构。H264/H265 分别分为三种帧类型:I 帧、…...
手机app如何跳过无障碍权限实现弹框自动点击-ADB连接专题
手机app如何跳过无障碍权限实现弹框自动点击 --ADB连接专题 一、前言 我们在前期的时候,在双SIM卡进行协同外呼和SIM卡切换时,对如何在手机中“执行批处理脚本做自动点击”的内容进行预研,力图使用事件触发和坐标点击等方式来实现手机安装…...
kafka-保姆级配置说明(consumer)
bootstrap.servers #deserializer应该与producer保持对应 #key.deserializer #value.deserializer ##fetch请求返回时,至少获取的字节数,默认值为1 ##当数据量不足时,客户端请求将会阻塞 ##此值越大,客户端请求阻塞的时间越长&…...
c语言中的数组(上)
数组的概念 数组是⼀组相同类型元素的集合; 数组中存放的是1个或者多个数据,但是数组元素个数不能为0。 数组中存放的多个数据,类型是相同的。 数组分为⼀维数组和多维数组,多维数组⼀般⽐较多⻅的是⼆维数组。 数组创建 在C语言…...
20250122-正则表达式
1. 正则标记 表示一位字符:\\ 表示指定的一位字符:x 表示任意的一位字符:. 表示任意一位数字:\d 表示任意一位非数字:\D 表示任意一个字母:[a-zA-Z](大写或小写) 表示任意一个…...
(回溯法 子集)leetcode78
#include<iostream> #include<string> #include<vector> //只有子集需要在每个结点收集结果,其余在叶子结点收集结果 using namespace std; vector<vector<int>>ans; vector<int>combine; void backtracking(int index,vector&…...
Pyecharts之图表组合与布局优化
在数据可视化中,我们经常需要将多个图表组合在一起,以展示不同维度的数据或者进行对比分析。同时,合理的布局能够提升图表的可读性和用户体验。Pyecharts 提供了强大的组件和方法,让我们可以轻松实现图表的组合和布局优化。本篇将…...
代码随想录训练营第五十六天| 108.冗余连接 109.冗余连接II
108.冗余连接 题目链接:卡码网题目链接(ACM模式) (opens new window) 讲解链接:代码随想录 并查集可以解决什么问题:两个节点是否在一个集合,也可以将两个节点添加到一个集合中。 引自代码随想录ÿ…...
私有包上传maven私有仓库nexus-2.9.2
一、上传 二、获取相应文件 三、最后修改自己的pom文件...
二叉搜索树中的搜索(力扣700)
首先介绍一下什么是二叉搜索树。 二叉搜索树是一个有序树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉…...
社区养老服务平台的设计与实现(代码+数据库+LW)
摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱,出错率高,信息安全性差&#…...
高速光模块中的并行光学和WDM波分光学技术
随着AI大模型训练和推理对计算能力的需求呈指数级增长,AI数据中心的网络带宽需求大幅提升,推动了高速光模块的发展。光模块作为数据中心和高性能计算系统中的关键器件,主要用于提供高速和大容量的数据传输服务。 光模块提升带宽的方法有两种…...
python生成图片和pdf,快速
1、下载安装 pip install imgkit pip install pdfkit2、wkhtmltopdf工具包,下载安装 下载地址:https://wkhtmltopdf.org/downloads.html 3、生成图片 import imgkit path_wkimg rD:\app\wkhtmltopdf\bin\wkhtmltoimage.exe # 工具路径,安…...
浅谈在AI时代GIS的发展方向和建议
在AI时代,GIS(地理信息系统)的发展正经历着深刻的变革,随着人工智能技术的进步,GIS不再仅仅是传统的地图和空间数据处理工具,而是向更加智能化、自动化、精准化的方向发展。作为一名GIS开发工程师ÿ…...
【25考研】中科院软件考研复试难度分析!
中科院软件复试不需要上机!且对专业综合能力要求较高!提醒同学一定要认真复习! 一、复试内容 二、参考书目 官方并未明确给出,建议同学参考初试书目: 1)《数据结构(C语言版)》严蔚…...
【2024年华为OD机试】 (A卷,200分)- 计算网络信号、信号强度(JavaScriptJava PythonC/C++)
一、问题描述 题目解析 问题描述 我们有一个 m x n 的二维网格地图,每个格子可能是以下几种情况之一: 0:表示该位置是空旷的。x(正整数):表示该位置是信号源,信号强度为 x。-1:表示该位置是阻隔物,信号无法直接穿透。信号源只有一个,阻隔物可能有多个。信号在传播…...
SpringBoot整合Swagger UI 用于提供接口可视化界面
目录 一、引入相关依赖 二、添加配置文件 三、测试 四、Swagger 相关注解 一、引入相关依赖 图像化依赖 Swagger UI 用于提供可视化界面: <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactI…...
C语言:数据的存储
本文重点: 1. 数据类型详细介绍 2. 整形在内存中的存储:原码、反码、补码 3. 大小端字节序介绍及判断 4. 浮点型在内存中的存储解析 数据类型结构的介绍: 类型的基本归类: 整型家族 浮点家族 构造类型: 指针类型&…...
OpenFGA
1.什么是OpenFGA Fine-Grained Authorization 细粒度关系型授权 2.什么是细粒度授权 细粒度授权 (FGA) 意味着能够授予特定用户在特定资源中执行特定操作的权限。 精心设计的 FGA 系统允许您管理数百万个对象和用户的权限。随着系统不断添加对象并更新用户的访问权限&#…...
Kafka 入门与应用实战:吞吐量优化与与 RabbitMQ、RocketMQ 的对比
前言 在现代微服务架构和分布式系统中,消息队列作为解耦组件,承担着重要的职责。它不仅提供了异步处理的能力,还能确保系统的高可用性、容错性和扩展性。常见的消息队列包括 Kafka、RabbitMQ 和 RocketMQ,其中 Kafka 因其高吞吐量…...
单链表算法实战:解锁数据结构核心谜题——链表的回文结构
题目如下: 解题过程如下: 回文结构举例: 回文数字:12521、12321、1221…… 回文字符串:“abcba”、“abba”…… 并不是所有的循环嵌套的时间复杂度都是O(n^2) 可以用C写C程序: C里可以直接使用ListNode…...
【2024年 CSDN博客之星】我的2024年创作之旅:从C语言到人工智能,个人成长与突破的全景回顾
我的2024年创作之旅:从C语言到人工智能,个人成长与突破的全景回顾 引言 回望2024年,我不仅收获了技术上的成长,更收获了来自CSDN平台上无数粉丝、朋友以及网友们的支持与鼓励。在这条创作之路上,CSDN不仅是我展示技术成…...
Qt Enter和HoverEnter事件
介绍 做PC开发的过程中或多或少都会接触到鼠标的悬停事件,Qt中处理鼠标悬停有Enter和HoverEnter两种事件 相同点 QEvent::Enter对应QEnterEvent,描述的是鼠标进入控件坐标范围之内的行为,QEnterEvent可以抓取鼠标的位置;QEvent…...
Python:元组构造式和字典推导式
(Python 元组构造式和字典推导式整理笔记) 1. 元组构造式 1.1 创建元组 使用圆括号: tuple1 (1, 2.5, (three, four), [True, 5], False) print(tuple1) # 输出: (1, 2.5, (three, four), [True, 5], False) 省略圆括号: tup…...
科普篇 | “机架、塔式、刀片”三类服务器对比
一、引言 在互联网的世界里,服务器就像是默默运转的超级大脑,支撑着我们日常使用的各种网络服务。今天,咱们来聊聊服务器家族中的三位 “明星成员”:机架式服务器、塔式服务器和刀片式服务器。如果把互联网比作一座庞大的城市&…...
数据结构——概念与时间空间复杂度
目录 前言 一相关概念 1什么是数据结构 2什么是算法 二算法效率 1如何衡量算法效率的好坏 2算法的复杂度 三时间复杂度 1时间复杂度表示 2计算时间复杂度 2.1题一 2.2题二 2.3题三 2.4题四 2.5题五 2.6题六 2.7题七 2.8题八 四空间复杂度 1题一 2题二 3…...
centos7 配置国内镜像源安装 docker
使用国内镜像源:由于 Docker 的官方源在国内访问可能不稳定,你可以使用国内的镜像源,如阿里云的镜像源。手动创建 /etc/yum.repos.d/docker-ce.repo 文件,并添加以下内容: [docker-ce-stable] nameDocker CE Stable -…...
PyCharm配置Python环境
1、打开PyCharm项目 可以从File-->Open-->选择你的项目路径-->OK,或者直接点击Open,找到项目路径-->OK,如图所示(点击Ok后可能有下面的弹窗,选择“Trust Project”即可,然后选择“New Window”打开项目) …...
Linux(Centos、Ubuntu) 系统安装jenkins服务
该文章手把手演示在Linux系统下如何安装jenkins服务、并自定义jenkins数据文件位置、以及jenkins如何设置国内镜像源加速,解决插件下载失败问题 安装方式:war包安装 阿里云提供的war下载源地址:https://mirrors.aliyun.com/jenkins/war/?s…...
本地大模型编程实战(02)语义检索(1)
文章目录 准备加载文档分割文档嵌入矢量存储查询矢量库检索返回评分先嵌入查询文本再检索 检索器总结代码 我们在百度、必应、谷歌等搜索引擎中使用的检索都是基于字符串的:用户输入字符串后,搜索引擎先对搜索内容进行分词,然后在已经进行了倒…...
使用 Redis 实现分布式锁的基本思路
使用 Redis 实现分布式锁的基本思路 在分布式系统中,多个进程或服务可能会同时访问共享资源(如数据库、缓存、文件等),这可能会导致数据不一致或并发冲突。Redis 由于其高性能和单线程模型,是实现分布式锁的一个常见选…...