【Tauri2】013——前端Window Event与创建Window
前言
【Tauri2】012——on_window_event函数-CSDN博客https://blog.csdn.net/qq_63401240/article/details/146909801?spm=1001.2014.3001.5501
前面介绍了on_window_event,这个在Builder中的方法,里面有许多事件·,比如Moved,Resized等之类的。
这篇就来简单地看看前端Window中的事件。
当然,事件可以自定义,以后慢慢说
参考
事件 | Tauri - Tauri 框架https://v2.tauri.org.cn/reference/javascript/api/namespaceevent/
正文
从官网中,可以发现有下面这些事件。
declare enum TauriEvent {WINDOW_RESIZED = "tauri://resize",WINDOW_MOVED = "tauri://move",WINDOW_CLOSE_REQUESTED = "tauri://close-requested",WINDOW_DESTROYED = "tauri://destroyed",WINDOW_FOCUS = "tauri://focus",WINDOW_BLUR = "tauri://blur",WINDOW_SCALE_FACTOR_CHANGED = "tauri://scale-change",WINDOW_THEME_CHANGED = "tauri://theme-changed",WINDOW_CREATED = "tauri://window-created",WEBVIEW_CREATED = "tauri://webview-created",DRAG_ENTER = "tauri://drag-enter",DRAG_OVER = "tauri://drag-over",DRAG_DROP = "tauri://drag-drop",DRAG_LEAVE = "tauri://drag-leave"
}
窗口事件
1、WINDOW_MOVED: "tauri://move" - 窗口移动时触发
2、WINDOW_RESIZED: "tauri://resize" - 窗口调整大小时触发
3、WINDOW_CLOSE_REQUESTED: "tauri://close-requested" - 窗口关闭请求时触发
4、WINDOW_DESTROYED: "tauri://destroyed" - 窗口销毁时触发
5、WINDOW_FOCUS: "tauri://focus" - 窗口获得焦点时触发
6、WINDOW_BLUR: "tauri://blur" - 窗口失去焦点时触发
7、WINDOW_SCALE_FACTOR_CHANGED: "tauri://scale-change" - 窗口缩放比例改变时触发
8、WINDOW_THEME_CHANGED: "tauri://theme-changed" - 窗口主题改变时触发
窗口生命周期事件
1、WINDOW_CREATED: "tauri://window-created" - 新窗口创建时触发
2、WEBVIEW_CREATED: "tauri://webview-created" - WebView 创建时触发
拖放事件
1、DRAG_ENTER: "tauri://drag-enter" - 拖拽进入窗口时触发
2、DRAG_OVER: "tauri://drag-over" - 拖拽在窗口上方时触发
3、DRAG_DROP: "tauri://drag-drop" - 拖拽释放时触发
4、DRAG_LEAVE: "tauri://drag-leave" - 拖拽离开窗口时触发
简单地使用一下
很明显,前端Window事件比on_window_event中的事件多。
在src目录下,新建一个Events目录,其中新建一个useEvent.ts文件,
文件中写一个useWindowEvent函数
比如说,使用移动,代码如下
import {getCurrentWindow} from "@tauri-apps/api/window";export default function useWindowEvent() {let window = getCurrentWindow();window.onMoved((event)=>{console.log("窗口移动", event.payload);})}
结果,在开发者工具中
还有使用listen,监听事件
import {getCurrentWindow} from "@tauri-apps/api/window";export default function useWindowEvent() {let window = getCurrentWindow();window.listen("tauri://move", (event) => {console.log("Window moved", event.payload);})
}
结果如下
大同小异,感觉差不多。
listen方法,以后还会用,这个是前端用来监听事件的,可以监听自定义事件,以后再说,还有once方法。
对于on,后面的事件,就只要下面几种,不能全部监听
监听Window-created事件
在监听之前
可以现在后端打开开发者工具
WebviewWindow in tauri::webview - Rusthttps://docs.rs/tauri/latest/tauri/webview/struct.WebviewWindow.html#method.open_devtools即在setup中
.setup(|app|{// 打开控制台#[cfg(debug_assertions)]{let window = app.get_webview_window("main").unwrap();window.open_devtools();}Ok(())})
需要在Cargo.toml中的feature设置devtools,即
tauri = { version = "2", features = ["devtools"] }
实际窗口创建后,可以自己打开。无所谓
要想监听Window-created,显而易见,需要创建Window
Tauri后端创建Window
前面创建menu,可以直接使用Menu,或者使用MenuBuilder,对于Window,差不多
参考
Window in tauri::window - Rusthttps://docs.rs/tauri/latest/tauri/window/struct.Window.html#method.builder虽然没有new,但是又builder方法
这和WindowBuilder,感觉没有什么区别
pub fn new<L: Into<String>>(manager: &'a M, label: L) -> Self
WindowBuilder in tauri::window - Rusthttps://docs.rs/tauri/latest/tauri/window/struct.WindowBuilder.html还有from_config方法,也可以,以后在说。
因此,笔者使用WindowBuilder创建,其中WindowBuilder的new方法
pub fn new<L: Into<String>>(manager: &'a M, label: L) -> Self
第一个manager,是引用M,还有生命周期'a
第二个label,是L,L的约束是Into<String>,传入一个&str,会自动转化成String。
总之,第一个参数传&app,第二个参数传&str。
在此之前,拆分一下后端的结构
创建command目录和mod.rs文件,通信函数写在里面,还可以再创建文件
名字任取。代码如下
use tauri::{AppHandle, WindowBuilder, command, Theme,Window};
#[command]
pub fn create_window(app: AppHandle, label: &str) {WindowBuilder::new(&app,label).title(label).build().unwrap();
}
注册通信函数,关键代码
mod command;
.invoke_handler(tauri::generate_handler![command::create_window,command::change_theme])
试试是否成功
在前端添加一个按钮,绑定事件。
async function handleCreateWindow(){await invoke("create_window",{label:"world"});}
监听创建和销毁
// 全局监听listen("tauri://window-created",(event) => {console.log("Window created", event);})// 全局监听listen("tauri://destroyed", (event) => {console.log("Window destroyed", event);})
结果如下
前端创建窗口
很简单,
constructor(label: WindowLabel, options?: WindowOptions);
第一个参数是label
第一个是其他选项,什么高度之类的。
import {Window} from "@tauri-apps/api/window";
export function createWindow() {let window=new Window('hello', {width: 400,height: 300,visible: true,})console.log("Window created", window);
}
调用函数,结果如下
虽然创建了,但是,没有显示,需要调用show方法
window.show()
但是,报错了
Uncaught (in promise) window.show not allowed.
Permissions associated with this command: window:allow-show
简单的说,权限不够。
权限修改
笔者本来想,单独写的,但感觉没必要。需要什么权限,就加什么权限,没什么好说的
在capability中的default.json中添加
"windows": ["main","hello"],
permissions:[ ....."core:window:allow-show",
]
再次运行
export function createWindow() {let window=new Window('hello', {width: 400,height: 300,visible: true,})window.show()console.log("Window created", window);
}
但是结果还是报错了
说什么 window not found,前面都说创建了,笔者看了看官网,发现没有什么用。
窗口 | Tauri - Tauri 框架https://v2.tauri.org.cn/reference/javascript/api/namespacewindow/#window
发现
但是,笔者查看了开发者工具中的网络,发现了这个东西
看看有些什么请求。
还是POST请求
看看负载
{event: "tauri://destroyed",target: {kind: "Any"},handler: 2498220777
}
这里居然有个tauri://destroyed。
其他请求,依然如此。
清除日志,再次点击。
发现了一个请求,还是POST
负载如下
options: {width: 400, height: 300, visible: true, label: "hello"}
这给options不就是window的参数,
看看响应
"window.create not allowed.
Permissions associated with this command: window:allow-create"
看到这个,笔者就明白了,权限问题。
因此,修改权限
"permissions": [....."core:window:allow-show","core:window:allow-create"]
最后一次运行
代码如下
export function createWindow() {let window=new Window('hello', {width: 400,height: 300,visible: true,})window.listen("tauri://window-created", (event) => {console.log("窗口创建成功", event);window.show()})
}
结果如下,完美
看来在前端创建窗口,还需要权限。有点麻烦。
最后
官网的事件笔者也尝试了
这个created,也是可以的
window.listen("tauri://created", (event) => {console.log("窗口创建成功", event);window.show()})
想不到前端的这些事件,居然是发送请求。
笔者突然有个想法,能否模拟这个请求? 以后再来尝试,有点意思
相关文章:
【Tauri2】013——前端Window Event与创建Window
前言 【Tauri2】012——on_window_event函数-CSDN博客https://blog.csdn.net/qq_63401240/article/details/146909801?spm1001.2014.3001.5501 前面介绍了on_window_event,这个在Builder中的方法,里面有许多事件,比如Moved,Res…...
修复SSL证书链不完整问题certificate verify failed unable to get local issuer certificate
文章目录 前言排查过程怀疑文章平台图片转存问题尝试使用 Python 代码下载图片使用 SSL Labs Server Test 验证猜想回顾 SSL 安装命令ACME 生成的证书 验证使用 [SSL Labs Server Test](https://www.ssllabs.com/ssltest/index.html) 验证文章发布平台转存验证 个人简介 前言 …...
管家婆财贸ERP BB102.采购销售订金管理
低适用版本: 财贸系列 23.8 插件简要功能说明: 采购订单/销售订单支持查询订金付款情况,联查下游付款/收款信息更多细节描述见下方详细文档 插件操作视频: 进销存类定制插件--采购销售订金管理 插件详细功能文档: …...
前端对接下载文件接口、对接dart app
嵌套在dart app里面的前端项目 1.前端调下载接口 ->后端返回 application/pdf格式的文件 ->前端将pdf处理为blob ->blob转base64 ->调用dart app的 sdk saveFile ->保存成功 async download() {try {// 调用封装的 downloadEContract 方法获取 Blob 数据const …...
牛客 简写单词
简写单词_牛客题霸_牛客网 主要是如何输入 #include <iostream> #include <string>using namespace std;int main() {string str;while(cin>>str){if(str[0]>a&&str[0]<z){cout<<char(str[0]-32);}else cout<<str[0];str.clear(…...
解决STM32CubeMX中文注释乱码
本人采用【修改系统环境变量】的方法 1. 使用快捷键 win X,打开【系统R】,点击【高级系统设置】 2. 点击【环境变量】 3. 点击【新建】 4.按图中输入【JAVA_TOOL_OPTIONS】和【-Dfile.encodingUTF-8】,新建环境变量后重启CubeMX即可。 解释…...
若依——基于AI+若依框架的实战项目(实战篇(下))
目录 前言 6. 设备管理 6.1 需求说明 6.2 生成基础代码 6.2.1 需求 6.2.2 步骤 ①创建目录菜单 ②添加数据字典 ③配置代码生成信息 ④下载代码并导入项目 6.3 设备类型改造 6.3.1 基础页面 需求 代码实现 6.4 设备管理改造 6.4.1 基础页面 需求 代码实现 …...
SpringBoot项目瘦身指南:从臃肿到高效的优化实践
精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 一、问题背景 SpringBoot的"约定优于配置"特性极大提升了开发效率,但默认配置可能导致项目逐渐臃肿。典型的症状包括: 打…...
运筹帷幄:制胜软件开发
运筹学在软件开发项目中的作用主要体现在复杂系统建模、资源优化和决策支持中。通过数学建模、算法设计和数据分析,运筹学能够帮助开发团队更高效地实现软件需求,尤其是在涉及资源分配、路径规划、调度优化等场景时。 案例:电商物流配送系统的…...
代码随想录|动态规划|18完全背包理论基础
leetcode:52. 携带研究材料(第七期模拟笔试) 题目 有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品都有无限个(也就是可以放入背包多次),求解将哪些…...
52.个人健康管理系统小程序(基于springbootvue)
目录 1.系统的受众说明 2.开发环境与技术 2.1 MYSQL数据库 2.2 Java语言 2.3 微信小程序技术 2.4 SpringBoot框架 2.5 B/S架构 2.6 Tomcat 介绍 2.7 HTML简介 2.8 MyEclipse开发工具 3.系统分析 3.1 可行性分析 3.1.1 技术可行性 3.1.2 经济可行性 3.1.3 操作…...
大语言模型中的嵌入模型
本教程将拆解什么是嵌入模型、为什么它们在NLP中如此重要,并提供一个简单的Python实战示例。 分词器将原始文本转换为token和ID,而嵌入模型则将这些ID映射为密集向量表示。二者合力为LLMs的语义理解提供动力。图片来源:[https://tzamtzis.gr/2024/coding/tokenization-by-an…...
运维之 Centos7 防火墙(CentOS 7 Firewall for Operations and Maintenance)
运维之 Centos7 防火墙 1.介绍 Linux CentOS 7 防火墙/端口设置: 基础概念: 防火墙是一种网络安全设备,用于监控和控制网络流量,以保护计算机系统免受未经授权的访问和恶意攻击。Linux CentOS 7操作系统自带了一个名为iptables的…...
Ubuntu 20.04 出现问号图标且无法联网 修复
在 Ubuntu 中遇到网络连接问题(如出现问号图标且无法联网),可以通过以下命令尝试重启网络服务: 1. 推荐先修改DNS 编辑 -> 虚拟机网络编辑器-> VMnet8 ->NAT 设置 -> DNS 设置 -> 设置DNS 服务器 DNS填什么 取决…...
联想M7400打印机怎么清零
一(粉盒加粉后清零): 开机,打开前盖; 按下 “清除返回” 键,屏幕显示 “更换硒鼓?是否”; 按 “开始” 键,屏幕无显示; 按下 “” 号键 11 次,…...
AIGC7——AIGC驱动的视听内容定制化革命:从Sora到商业化落地
引言:个性化视听时代的到来 2024年,OpenAI发布视频生成模型Sora,可生成60秒高清视频;中国团队推出的Vidu模型实现16秒镜头连贯生成。这些突破标志着AIGC正式进入高质量视听内容定制化阶段。据Gartner预测,到2027年&am…...
Git Restore 命令详解与实用示例
文章目录 Git Restore 命令详解与实用示例1. 恢复工作区文件到最后一次提交的状态基本命令示例恢复所有更改 2. 恢复某个文件到特定提交的状态基本命令示例 3. 恢复暂存区的文件基本命令示例恢复所有暂存的文件 git restore 的常见选项git restore 与 git checkout 比较总结 Gi…...
Sentinel全面解析与实战教程
Sentinel全面解析与实战教程 一、引言 在现代分布式系统中,随着业务的不断发展和流量的日益增长,保障系统的稳定性成为了重中之重。Sentinel作为一款优秀的高可用流量防护组件,为解决系统中的流量控制、熔断降级等问题提供了有效方案。本文…...
考研总结(初试篇)--双非勇闯985
考研终于告一段落了,也是被湖南大学拟录取了,写下这篇总结,回顾一下我的经历吧。 我是2024年3月开学的时候,正式确定考研的。当时纠结于定学校,长理和湖大。最后还是选择湖大,因为反正都是要好好准备的&am…...
【电路笔记】-触发器的转换
触发器的转换 文章目录 触发器的转换1、概述2、置位-复位SR触发器3、门控置位-复位(SR)触发器4、数据(D型)触发器5、JK触发器6、使用主从触发器的触发器转换7、(切换)T型触发器8、总结触发器是时序电路的基本构建模块,可以从一种形式转换到另一种形式,能够存储单个数据…...
QT 中的元对象系统(五):QMetaObject::invokeMethod的使用和实现原理
目录 1.简介 2.原理概述 3.实现分析 3.1.通过方法名调用方法的实现分析 3.2.通过可调用对象调用方法的实现分析 4.使用场景 5.总结 1.简介 QMetaObject::invokeMethod 是 Qt 框架中的一个静态方法,用于在运行时调用对象的成员函数。这个方法提供了一种动态调…...
基数排序算法解析与TypeScript实现
基数排序(Radix Sort)是一种高效的非比较型整数排序算法,通过逐位分配与收集的方式实现排序。本文将深入解析其工作原理,并给出完整的TypeScript实现。 一、算法原理 1. 核心思想 多关键字排序:将整数按位数切割成不同…...
oracle asm 相关命令和查询视图
有关asm磁盘的命令 添加磁盘 alter diskgroup data1 add disk /devices/diska*;---runs with a rebalance power of 5 , and dose not return until the rebalance operation is completealter diskgroup data1 add disk /devices/diskd* rebalance power 5 wait;查询 select …...
THUNLP_Multimodal_Excercise
背景 多模态大模型(Multimodal Large Language Models, MLLM)的构建过程中,模型结构、模型预测、指令微调以及偏好对齐训练是其中重要的组成部分。本次任务中,将提供一个不完整的多模态大模型结构及微调代码,请根据要求…...
AIGC6——AI的哲学困境:主体性、认知边界与“天人智一“的再思考
引言:当机器开始"思考" 2023年,Google工程师Blake Lemoine声称对话AI LaMDA具有"自我意识",引发轩然大波。这一事件将古老的哲学问题重新抛回公众视野:**机器能否拥有主体性?**从东方"天人…...
主题(topic)中使用键(key)来区分同一主题下的多个数据实例
在Fast DDS中,通过在主题(topic)中使用键(key)来区分同一主题下的多个数据实例,具体含义如下: 1. **主题(Topic)**:在DDS中,主题是数据的类型或类…...
[王阳明代数讲义]琴语言类型系统工程特性
琴语言类型系统工程特性 层展物理学组织实务与艺术与琴生生.物机.械科.技工.业研究.所软凝聚态物理开发工具包社会科学气质砥砺学人生意气场社群成员魅力场与心气微积分社会关系力学 意气实体过程图论信息编码,如来码导引 注意力机制道装Transformer架构的发展标度律…...
蜜蜡是什么?蜜蜡与琥珀的区别以及蜜蜡的收藏价值一览
蜜蜡是琥珀的一种,在物理成分和化学成分上都和琥珀没有区别,只是因其“色如蜜,光如蜡”而得名。蜜蜡形成于白垩纪时期,因形成时间较长,形成过程比较复杂等原因,种类较其他产地要多。 蜜蜡是有机矿物&#x…...
第五课:高清修复和放大算法
文章目录 Part.01 高清修复(Hi-Res Fix)Part.02 SD放大(SD Upscale)Part.03 附加功能放大Part.01 高清修复(Hi-Res Fix) 文生图中的高清修复/高分辨率修复/超分辨率修复先低分辨率抽卡,再高分辨率修复。不能突破显存限制放大重绘幅度安全范围是0.3-0.5,如果想让AI更有想象力0…...
SpringSecurity6.0 通过JWTtoken进行认证授权
之前写过一个文章,从SpringSecurity 5.x升级到6.0,当时是为了配合公司的大版本升级做的,里面的各项配置都是前人留下来的,其实没有花时间进行研究SpringSecurity的工作机制。现在新东家有一个简单的系统要搭建,用户的认…...
TypeScript工程集成
以下是关于 TypeScript 工程集成 的系统梳理,涵盖基础配置、进阶优化、开发规范及实际场景的注意事项,帮助我们构建高效可靠的企业级 TypeScript 项目: 一、基础知识点 1. 项目初始化与配置 tsconfig.json 核心配置:{"compilerOptions": {"target": &…...
网络空间安全(51)邮件函数漏洞
前言 邮件函数漏洞,特别是在PHP环境中使用mail()函数时,是一个重要的安全问题。 一、概述 在PHP中,mail()函数是一个用于发送电子邮件的内置函数。其函数原型为: bool mail ( string $to , string $subject , string $message [, …...
怎么让一台云IPPBX实现多家酒店相同分机号码一起使用
下面用到的IPPBX是我们二次开发后的成品,支持各种云服务器一键安装,已经写好了一键安装包,自动识别系统环境,安装教程这里就不再陈述了! 前言需求 今天又遇到了一个客户咨询,关于部署一台云IPPBX…...
qt tcpsocket编程遇到的并发问题
1. 单个socket中接收消息的方法要使用局部变量而非全局,避免消息频发时产生脏数据 优化后的关键代码 recieveInfo() 方法通过返回内部处理后的 msg 进行传递if (data.indexOf("0103") -1) { 这里增加了判断, 对数据(非注册和心跳࿰…...
U盘实现——BOT 常用命令
文章目录 U盘实现——BOT 常用命令命令格式CBWCSW数据传输条件命令传输数据传输状态传输命令汇总INQUIRY Command:12h数据格式抓包READ FORMAT CAPACITIES Command: 23h数据格式抓包READ CAPACITY Command: 25h数据格式抓包TEST UNIT READY Command: 00h数据格式抓包WRITE(10) …...
JavaScript DOM 节点操作
目录 一、DOM 节点 节点类型(Node Types) 二、查找节点 1.查找父节点 1. parentNode 2. parentElement 2.查找子节点 1. childNodes 2. children 3. firstChild / lastChild 4. firstElementChild / lastElementChild 3.查找兄弟节点 1. pre…...
JDBC常用的接口
一、什么是JDBC JDBC是Java语言连接数据库的接口规范。 二、JDBC的体系 1、Java官方提供一个操作数据库的抽象接口 抽象接口有很多的接口和抽象类。 例如:Driver、Connection、Statement。 2、各个数据库厂商提供各自的Java实现类 需要各自实现具体的细节。 例如&am…...
【DLI】Generative AI with Diffusion Models通关秘籍
Generative AI with Diffusion Models,加载时间在20分钟左右,耐心等待。 6.2TODO 这里是在设置扩散模型的参数,代码里的FIXME部分需要根据上下文进行替换。以下是各个FIXME的替换说明: 1.a_bar 是 a 的累积乘积,在 …...
TP6图片操作 Image::open 调用->save()方法时候报错Type is not supported
错误提示: { "code": 0, "msg": "Type is not supported", "data": { "code": 0, "line": 50, "file": "/www/wwwroot/ytems/vendor/topthink/framework/src/think…...
11_常用函数
文章目录 一、概述二、字符函数2.1、获取字符串所占字节数2.2、获取字符个数2.3、拼接字符串2.4、大小写转换2.5、获取子串2.6、获取子串第一次出现的索引2.7、去除字符串前后子字符串2.7.1、去掉左侧空格2.7.2、去掉右侧空格 2.8、左右填充2.9、字符串替换 三、数学函数3.1、四…...
《inZOI(云族裔)》50+MOD整合包
载具 RebelCore - 年龄和时间 mod启动器 优化补丁 去除雾气 坦克模型 菜单 前置 跳过启动 更好性能 等 共计50MOD整合 在游戏的世界里,追求更丰富、更优质的体验是玩家们永恒的主题。RebelCore 这款游戏通过精心打造的 50MOD 整合,为玩家带来了前所未有的…...
【技术报告】GPT-4o 原生图像生成的应用与分析
【技术报告】GPT-4o 原生图像生成的应用与分析 1. GPT-4o 原生图像生成简介1.1 文本渲染能力1.2 多轮对话迭代1.3 指令遵循能力1.4 上下文学习能力1.5 跨模态知识调用1.6 逼真画质与多元风格1.7 局限性与安全性 2. GPT-4o 技术报告2.1 引言2.2 安全挑战、评估与缓解措施2.2.1 安…...
拼多多延迟发货解答2
三、延迟发货处理标准 延迟发货极大地影响了消费者的购物体验,平台对延迟发货行为也有相应的处理标准,因此各位商家一定不要以为延迟发货是小事儿。延迟发货处理标准具体可查看《拼多多发货规则》第3条。 商家发生延迟发货的,拼多多平台有权…...
RTOS基础 -- NXP M4小核的RPMsg-lite与端点机制回顾
一、RPMsg-lite与端点机制回顾 在RPMsg协议框架中: Endpoint(端点) 是一个逻辑通信端口,由本地地址(local addr)、远程地址(remote addr)和回调函数组成。每个消息都会发送到特定的…...
25.4.3学习总结【Java】
又是一道错题: 1. 班级活动https://www.lanqiao.cn/problems/17153/learning/?page1&first_category_id1&sortdifficulty&asc1&second_category_id3 问题描述 小明的老师准备组织一次班级活动。班上一共有 n 名 (n 为偶数) 同学,老师…...
市场交易策略优化与波动管理
市场交易策略优化与波动管理 在市场交易中,策略的优化和波动的管理至关重要。市场价格的变化受多种因素影响,交易者需要根据市场环境动态调整策略,以提高交易的稳定性,并有效规避市场风险。 一、市场交易策略的优化方法 趋势交易策…...
TypeScript 元数据操作 API 及示例
TypeScript 元数据操作 API 及示例 1. 配置环境 安装依赖 npm install reflect-metadatatsconfig.json 配置 {"compilerOptions": {"experimentalDecorators": true,"emitDecoratorMetadata": true,"target": "ES6"} }2…...
蓝桥杯刷题记录【并查集001】(2024)
主要内容:并查集 并查集 并查集的题目感觉大部分都是模板题,上板子!! class UnionFind:def __init__(self, n):self.pa list(range(n))self.size [1]*n self.cnt ndef find(self, x):if self.pa[x] ! x:self.pa[x] self.fi…...
搜广推校招面经六十六
高德推荐算法 一、介绍Transformer中的位置编码(Positional Encoding) 在 Transformer 结构中,由于模型没有内置的序列信息(不像 RNN 那样有时间步的顺序依赖),需要通过**位置编码(Positional…...
Java高频面试题2:集合框架
一、集合框架概述 1. 常见的集合框架有哪些? Collection:存储单个元素的集合。 List(有序、可重复):ArrayList(动态数组)、LinkedList(双向链表)。Set(无序…...