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

QQMusic项目功能总结

QQMusic项目功能总结

一、核心功能分类

(一)界面交互功能

功能模块实现方式使用类(自定义/Qt库)核心类说明
窗口布局Head区(图标、搜索框、控制按钮)+ Body区(左侧功能栏+右侧页面区),QStackedWidget管理6个页面Qt库(QWidget、QStackedWidget、QHBoxLayout等)
按钮交互左侧BtForm按钮带图标、文本和动画效果,点击切换页面,悬停/点击颜色变化自定义类(BtForm)继承QWidget
属性:id(页面索引)
函数:setIcon(设置图标/文本/ID)、clearBg(清除样式)、showAnimal(显示动画)
功能:通过QPropertyAnimation实现右侧竖条动画,点击时发射信号切换QStackedWidget页面
推荐页轮播左右翻页按钮切换推荐内容,鼠标悬停元素上移动画自定义类(RecBox、RecBoxItem)RecBox继承QWidget,管理RecBoxItem列表;RecBoxItem继承QWidget,处理鼠标事件
函数:initRecBoxUi(初始化布局)、createRecBoxItem(创建推荐项)
流程:解析QJsonArray数据,动态生成RecBoxItem,通过QPropertyAnimation实现悬停位移动画
歌词显示点击“词”按钮弹出歌词页,带动画显示/隐藏,歌词随时间滚动自定义类(LrcPage)继承QWidget
函数:parseLrc(解析LRC文件)、showLrcWord(同步歌词)
流程:解析LRC文件生成时间-歌词映射,通过QPropertyAnimation实现页面上下滑动动画,根据播放时间更新当前歌词高亮

(二)音乐播放功能

功能模块实现方式使用类(自定义/Qt库)核心类说明
基础播放控制播放/暂停、上一曲/下一曲、音量调节、Seek进度条Qt库(QMediaPlayer、QMediaPlaylist)QMediaPlayer处理播放逻辑,QMediaPlaylist管理播放列表
函数:setPlaylist(设置播放列表)、setVolume(调节音量)、setPosition(Seek定位)
信号槽:关联stateChanged(更新播放按钮图标)、positionChanged(同步进度和时间)
播放模式随机、单曲循环、列表循环Qt库(QMediaPlaylist)枚举PlaybackMode设置模式,通过信号playbackModeChanged更新界面图标
歌词同步解析LRC文件,按时间戳显示当前歌词自定义类(LrcPage)+ Qt库解析LRC文件生成LyricLine结构体(时间+歌词),通过QMediaPlayer的positionChanged信号触发歌词更新

(三)数据管理与持久化

功能模块实现方式使用类(自定义/Qt库)核心类说明
歌曲信息管理Music类封装元数据(名称、歌手、专辑、路径、收藏/历史标记)自定义类(Music)继承QObject
属性:musicId(UUID唯一标识)、isLike、isHistory
函数:parseMediaMetaData(解析元数据)、insertMusicToDB(写入数据库)
流程:通过QMediaPlayer解析音频文件元数据,存储到Music对象,通过MusicList管理列表
数据库持久化SQLite存储歌曲信息、收藏和播放记录Qt库(QSqlDatabase、QSqlQuery)创建musicInfo表,程序启动时读取数据库恢复数据,退出时写入最新状态
SQL语句:CREATE TABLE(建表)、INSERT/UPDATE(写入)、SELECT(查询)

(四)自定义控件汇总

控件名称继承类核心属性关键函数功能描述
BtFormQWidgetid(页面索引)setIcon()、clearBg()、showAnimal()左侧功能按钮,带图标、文本和动画效果,点击切换页面,通过信号槽与QStackedWidget联动
RecBoxQWidgetrow(行数)、col(列数)initRecBoxUi()、createRecBoxItem()推荐页轮播容器,管理RecBoxItem,支持左右翻页和分组显示
CommonPageQWidgetpageType(页面类型:收藏/本地/历史)setCommonPageUI()、reFresh()通用页面模板,统一管理“我喜欢”“本地下载”“最近播放”页面,通过QListWidget显示歌曲列表
ListItemBoxQWidgetisLike(收藏状态)setMusicName()、setLikeIcon()列表项控件,显示歌曲详情和收藏图标,点击收藏按钮发射信号更新Music对象
MusicSliderQWidgetcurrentPos(当前进度)mousePressEvent()、mouseMoveEvent()自定义进度条,支持鼠标拖拽Seek,通过信号同步播放位置
VolumeToolQWidgetisMuted(静音状态)、volumeRatio(音量比例)eventFilter()、setVolume()音量调节弹窗,带静音按钮和滑动条,通过事件过滤器处理鼠标操作,发射信号更新音量

(五)技术实现流程

  1. 页面切换流程
    • 点击左侧BtForm按钮,触发click信号并传递页面ID
    • QQMusic接收信号后,遍历所有BtForm按钮,清除非当前按钮的样式和动画
    • 通过QStackedWidget.setCurrentIndex()显示对应页面,调用updateBtFormAnimal()更新当前按钮动画
  2. 音乐播放流程
    • 双击列表项或点击“播放全部”,触发CommonPage发射playAll或playMusicByIndex信号
    • QQMusic根据信号获取当前页面歌曲列表,清空QMediaPlaylist并重新添加歌曲URL
    • 调用QMediaPlayer.play()开始播放,关联stateChanged信号更新播放按钮图标,positionChanged同步进度和时间
  3. 数据持久化流程
    • 写入数据库:程序退出时,MusicList遍历所有Music对象,检测是否存在,存在则更新isLike和isHistory,不存在则插入新记录
    • 读取数据库:程序启动时,从musicInfo表查询所有记录,生成Music对象并添加到MusicList,更新各CommonPage显示
  4. 歌词同步流程
    • 播放歌曲时,QMediaPlayer触发metaDataAvailableChanged信号,获取当前歌曲LRC路径
    • LrcPage.parseLrc()解析LRC文件,生成时间-歌词列表
    • 监听QMediaPlayer.positionChanged信号,计算当前时间对应的歌词行,更新界面显示并高亮当前歌词

(六)未实现与扩展功能

功能状态后续计划
皮肤更换暂未实现通过QSS动态切换样式表,支持自定义背景颜色或图片
网络模块暂未实现添加网络请求接口,实现在线歌曲搜索、推荐和歌词下载
单实例运行已实现通过QSharedMemory检测共享内存,防止程序多开

相关文章:

QQMusic项目功能总结

QQMusic项目功能总结 一、核心功能分类 (一)界面交互功能 功能模块实现方式使用类(自定义/Qt库)核心类说明窗口布局Head区(图标、搜索框、控制按钮) Body区(左侧功能栏右侧页面区&#xff09…...

人形机器人:MCP与人形机器人的联系

MCP(Model Context Protocol)与人形机器人的结合,正在重构智能体与物理世界的交互范式。这种联系不仅体现在技术架构的深度融合,更体现在对机器人认知能力、协作模式和应用场景的全方位赋能。以下从技术整合、场景落地和未来趋势三…...

matplotlib画图工具使用(1) 画折线统计图python代码

Python 画折线统计图(line chart)最常用的是 matplotlib。 最基本的折线图代码如下: import matplotlib.pyplot as plt# 假设这是你的数据 x [1, 2, 3, 4, 5] y [2, 3, 5, 7, 11]# 创建折线图 plt.plot(x, y, markero) # markero 是在点…...

神经网络与深度学习第四章-前馈神经网络

前馈神经网络 在本章中,我们主要关注采用误差反向传播来进行学习的神经网络。 4.1 神经元 神经元是构成神经网络的基本单元。主要是模拟生物神经元的结构和特性,接收一组输入信号并产生输出。 现代神经元中的激活函数通常要求是连续可导的函数。 净输…...

TC3xx学习笔记-UCB BMHD使用详解(一)

文章目录 前言UCB BMHDPINDISHWCFGLSENA0-3LBISTENACHSWENABMHDIDSTADCRCBMHDCRCBMHD_NPW0-7 总结 前言 AURIX Tc系列Mcu启动过程,必须要了解BMHD,本文详细介绍BMHD的定义及使用过程 UCB BMHD UCB表示User Configuration Block,UCB是Dflash,存储的地址…...

C语言 函数递归

目录 1.什么是递归 2.递归的限制条件 3.递归的举例 1.递归与迭代 1.递归是什么 递归是学习C语言函数绕不开的一个话题,那什么是递归呢? 递归其实是一种解决问题的方法,在C语言中,递归就是函数自己调用自己。 写一个史上最简单的C语言…...

4月25日日记(补)

最近实在是忙的不行了,做不到一天一更,但是实际上只需要每天拿出十分钟就可以写一篇不错的随笔或者说日记,我还是有点倦怠了。 昨天是4月25,我的生日,但是依旧是很忙碌的一天。零点准时拆了朋友们送的礼物&#xff0c…...

【股票系统】使用docker本地构建ai-hedge-fund项目,模拟大师炒股进行分析。人工智能的对冲基金的开源项目

股票系统: https://github.com/virattt/ai-hedge-fund 镜像地址: https://gitcode.com/gh_mirrors/ai/ai-hedge-fund 项目地址: https://gitee.com/pythonstock/docker-run-ai-hedge-fund 这是一个基于人工智能的对冲基金的原理验证项目。本项目旨在探讨利用人工智能进行…...

Ollama平替!LM Studio本地大模型调用实战

本文已收录在Github,关注我,紧跟本系列专栏文章,咱们下篇再续! 🚀 魔都架构师 | 全网30W技术追随者🔧 大厂分布式系统/数据中台实战专家🏆 主导交易系统百万级流量调优 & 车联网平台架构&a…...

2024江西ICPC部分题解

题目列表 A - Maliang Learning PaintingC - LiarG - Multiples of 5H - ConvolutionJ - Magic MahjongK - Magic Tree A - Maliang Learning Painting 题目来源&#xff1a;A - Maliang Learning Painting 思路分析 这是个签到题&#xff0c;直接输出abc即可 #include<b…...

RabbitMQ安装流程(Windows环境)

1.下载依赖&#xff0c;Downloads - Erlang/OTP 2.下载RabbitMQ安装包&#xff0c;Installing on Windows | RabbitMQ 3.下载的文件如下 4.安装ErLang依赖 5.安装RabbitMQ 6.RabbitMQ插件管理 6.1 进入Command Prompt命令行界面 6.2 输入rabbitmq-plugins.bat list 查看所有插…...

QT对话框及其属性

Qt中使用QDialog类表示对话框 对话框是一个顶层窗口&#xff0c;出现在程序最上层&#xff0c;用于实现短期任务或者简洁的用户交互 QDialog也是继承自QWidget,可以使用QWidget接口 Qt常用的内置对话框有: 对话框 说明 QFiledialog 文件对话框 QColorDialog 颜色对话框 …...

python怎么查看函数原型及变量是什么类型

python代码中看到一个变量或者对象名,怎么查看这个变量到底是个什么东西,是属性,还是函数,还是模块,还是个包,怎么去查看,要有一个查找流程: 1.可以先用print(变量名)和print(type(变量名)),确认变量是什么类型的参数 2.如果是模块或者类,可以通过dir()函数去查看模…...

住宅代理IP助力大规模数据采集实战

在数字化时代&#xff0c;数据就是燃料&#xff0c;而大规模数据采集则是从信息海洋中提炼价值的关键手段。面对目标网站的严格风控和地域限制&#xff0c;普通代理车轮战往往难以为继——流量一旦被识破&#xff0c;便可能付之东流。这时&#xff0c;住宅代理IP凭借来自真实家…...

【信息融合】卡尔曼滤波EKF毫米波雷达和红外数据信息融合

一、扩展卡尔曼滤波&#xff08;EKF&#xff09;的核心原理 EKF是针对非线性系统的改进卡尔曼滤波算法&#xff0c;其核心思想是通过一阶泰勒展开对非线性方程进行局部线性化&#xff0c;并利用雅可比矩阵&#xff08;Jacobian Matrix&#xff09;替换线性系统中的状态转移矩阵…...

一篇入门之-评分卡变量分箱(卡方分箱、决策树分箱、KS分箱等)实操例子

一、评分卡分箱-有哪些分箱方法 评分卡的分箱&#xff0c;是指将变量进行离散化。评分卡的分箱方法一般有&#xff1a;等频分箱、等距分箱、卡方分箱、决策树分箱、KS分箱等等。它们都属于自动分箱方法&#xff0c;其中&#xff0c;卡方分箱是实际中最常用的分箱方法。 1.1.等…...

【白雪讲堂】构建与优化企业知识图谱的实战指南

在GEO&#xff08;生成式引擎优化&#xff09;时代&#xff0c;知识图谱不仅是企业数据资产的“智慧大脑”&#xff0c;更是连接内容与AI理解之间的核心桥梁。一个高质量的知识图谱&#xff0c;能够显著提高AI平台对企业内容的识别度、相关性与推荐权重&#xff0c;从而在AI搜索…...

作为高速通道光纤传输模式怎么理解以及到底有哪些?

光纤的传输模式主要取决于光纤的结构(如纤芯直径和折射率分布),不同模式对应光波在光纤中传播的不同路径和电磁场分布。以下是光纤传输模式的主要分类及特点: 1. 单模光纤(Single-Mode Fiber, SMF) 核心特点: 纤芯直径极小(通常为 8-10微米),仅允许光以单一模式(…...

setup语法糖

为什么要有setup语法糖&#xff1a; 在选择式API中&#xff0c;一个模块涉及到的数据、方法、声明周期&#xff0c;会比较分撒&#xff0c;位置不集中&#xff0c;不利于解读代码&#xff0c;但是组合式API中的setup函数可以将他们组织在一起&#xff0c;提高了代码的可维护性…...

linux socket编程之tcp(实现客户端和服务端消息的发送和接收)

目录 一.创建socket套接字(服务器端) 二.bind将port与端口号进行绑定(服务器端) 2.1填充sockaddr_in结构 2.2bind绑定端口 三.建立连接 四.获取连接 五..进行通信(服务器端) 5.1接收客户端发送的消息 5.2给客户端发送消息 5.3引入多线程 六.客户端通信 6.1创建socke…...

Spring和Spring Boot集成MyBatis的完整对比示例,包含从项目创建到测试的全流程代码

以下是Spring和Spring Boot集成MyBatis的完整对比示例&#xff0c;包含从项目创建到测试的全流程代码&#xff1a; 一、Spring集成MyBatis示例 1. 项目结构 spring-mybatis-demo/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com.example/…...

Beta-VAE背景原理及解耦机制分析

Beta-VAE背景原理及解耦机制分析 论文链接&#xff1a;https://openreview.net/forum?idSy2fzU9gl&noteIdSy2fzU9gl 一、Beta-VAE的核心思想 Beta-VAE 是一种改进的变分自编码器&#xff08;VAE&#xff09;&#xff0c;旨在通过调整潜在变量的独立性来增强模型的解耦能…...

用c语言实现——一个动态顺序存储的串结构

一、思路概要 ①动态顺序存储的串结构&#xff1a; 动态应该使用动态内存分配&#xff0c;也就是用指针来存储字符数组&#xff0c;同时记录长度和当前容量。 这样结构体应该包含三个成员&#xff1a;一个char*指针&#xff0c;一个int表示当前长度&#xff0c;另一个int表示…...

小程序Npm package entry file not found?

修改依赖包的入口文件 看是不是cjs&#xff0c;小程序不支持cjs...

vue3学习之防抖和节流

​ 在前端开发中&#xff0c;我们经常会遇到这样的情况&#xff1a;某些事件&#xff08;如滚动、输入、点击等&#xff09;会频繁触发&#xff0c;如果不加以控制&#xff0c;可能会导致性能问题。Vue3 中的防抖&#xff08;Debounce&#xff09;和节流&#xff08;Throttle&a…...

当高级辅助驾驶遇上“安全驾校”:NVIDIA如何用技术给无人驾驶赋能?

高级辅助驾驶技术的商业化落地&#xff0c;核心在于能否通过严苛的安全验证。国内的汽车企业其实也在做高级辅助驾驶&#xff0c;但是吧&#xff0c;基本都在L2级别。换句话说就是在应急时刻内&#xff0c;还是需要人来辅助驾驶&#xff0c;AI驾驶只是决策层&#xff0c;并不能…...

Linux | Mfgtools 修改单独只烧写 Uboot,内核,文件系统

01 1. 打开 mfgtools_for_6ULL 文件夹,找到 cfg.ini 文件,如果您的板子是 EMMC 的修改如下图: 如果您的板子是 NAND 的,修改如下图: 02 2. 打开“Pro...

【Agent python实战】ReAct 与 Plan-and-Execute 的融合之道_基于DeepSeek api

写在前面 大型语言模型(LLM)驱动的 Agent 正在从简单的任务执行者向更复杂的问题解决者演进。在 Agent 的设计模式中,ReAct (Reason + Act) 以其步步为营、动态适应的特性见长,擅长处理需要与环境实时交互、快速响应的任务。而 Plan-and-Execute 则强调前瞻性规划,先制定…...

Native层Trace监控性能

一、基础实现方法 1.1 头文件引用 #include <utils/Trace.h> // 基础版本 #include <cutils/trace.h> // 兼容旧版本1.2 核心宏定义 // 区间追踪&#xff08;推荐&#xff09; ATRACE_BEGIN("TraceTag"); ...被监控代码... ATRACE_END();// 函数级自…...

【C++】15. 模板进阶

1. 非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即&#xff1a;出现在模板参数列表中&#xff0c;跟在class或者typename之类的参数类型名称。 非类型形参&#xff1a;就是用一个常量作为类(函数)模板的一个参数&#xff0c;在类(函数)模板中可将该参数当…...

C#进阶学习(十四)反射的概念以及关键类Type

目录 本文末尾有相关类中的总结&#xff0c;如有需要直接跳到最后即可 前置知识&#xff1a; 1、程序集&#xff08;Assembly&#xff09; 2、元数据&#xff08;Metadata&#xff09; 3、中间语言&#xff08;IL, Intermediate Language&#xff09; 中间语言&#xff08;…...

B. And It‘s Non-Zero

题目链接&#xff1a;https://codeforces.com/problemset/problem/1615/B 位运算之前没怎么写过&#xff0c;所以不会写。留一份题解&#xff0c;作为复习使用。 题解&#xff1a;按位与的结果不为0&#xff0c;则至少有一列全为1.要求删除的数最少&#xff0c;即要求该列原本…...

深入解析NuttX:为何它是嵌入式RTOS领域的标杆?​​

文章目录 引言一、NuttX简介&#xff1a;轻量级与高兼容性的结合二、架构特点&#xff1a;为何NuttX更灵活&#xff1f;三、横向对比&#xff1a;NuttX vs 主流嵌入式RTOS四、NuttX的核心优势五、何时选择NuttX&#xff1f;结语 引言 在资源受限的嵌入式系统中&#xff0c;实时…...

html初识

html 盖楼第一步&#xff1a;HTML1. HTML是啥玩意儿&#xff1f;2. 动手&#xff01;搭个你的"网络小窝" (第一个HTML页面)3. 添砖加瓦&#xff1a;常用HTML"建材"详解3.1 标题家族3.2 段落哥俩好3.3 传送门&#xff1a;链接3.4 挂画&#xff1a;图片 盖楼…...

leetcode66.加一

从后向前遍历&#xff0c;直到碰到非9的数&#xff08;也就是数组中中最后一个非9的数&#xff09; &#xff0c;该值&#xff0b;1&#xff0c;然后其后的数字全部0 class Solution {public int[] plusOne(int[] digits) {for (int i digits.length-1; i >0; i--) {if (d…...

【Vue】Vue3项目创建

执行npm run dev&#xff0c;如果报错检查nodejs版本...

缓存替换算法之 FIFO(先进先出)

FIFO&#xff08;First In, First Out&#xff0c;先进先出&#xff09;是一种常见的缓存替换算法&#xff0c;其基本思想是最早进入缓存的数据项将最先被移除。以下是FIFO的详细讲解&#xff1a; 一、FIFO的数据结构 队列&#xff08;Queue&#xff09; 队列是一种典型的线性…...

Linux下的I/O复用技术之epoll

I/O多路复用 指在单个线程或进程中&#xff0c;同时处理多个I/O操作的技术。 旨在提高程序处理多个并发I/O操作的能力&#xff0c;避免程序因等待某个I/O操作而被阻塞。在传统的I/O模型中当程序进行I/O操作时(如读取文件、接受网路数据等)&#xff0c;如果数据还未准备好&…...

数据分析管理软件 Minitab 22.2.2 中文版安装包 免费下载

Minitab22.2.2 安装包下载链接: https://pan.baidu.com/s/1cWuDbvcWhYrub01C6QR81Q?pwd6666 提取码: 6666 Minitab软件是现代质量管理统计软件&#xff0c;全球六西格玛实施的共同语言。Minitab 已经在全球120多个国家&#xff0c;5000多所高校被广泛使用。...

chrony服务器(1)

简介 NTP NTP&#xff08;Network Time Protocol&#xff0c;网络时间协议&#xff09;是一种用于同步计算机系统时间的协议是TCP/IP协议族中的一个应用层协议&#xff0c;主要用于在分布式时间服务器和客户端之间进行时钟同步&#xff0c;提供高精准度的时间校正通过分层的时…...

2025.04.26-淘天春招笔试题-第三题

📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 03. 二进制信号转换器 问题描述 卢小姐是一位通信工程师,她设计了一种特殊的二进制信号处理装置。该装置可以对由 0 0 0...

腾讯二面:TCC分布式事务 | 图解TCC|用Go语言实现一个TCC

写在前面 前段时间&#xff0c;有同学反馈的一个面试问题&#xff0c;觉得分布式事务有点偏了&#xff0c;但其实也不算偏了&#xff0c;在java领域就有很火很成熟的seata分布式事务框架(阿里和蚂蚁的同学主导&#xff0c;目前在apache孵化)。 之前我们讲过了两阶段提交、三阶…...

如何在 Conda 环境中降级 Python 版本:详细指南

如何在 Conda 环境中降级 Python 版本&#xff1a;详细指南 Python 版本的管理在开发过程中至关重要&#xff0c;特别是在处理不同项目需求时。对于使用 Conda 环境的 Python 程序员来说&#xff0c;版本管理不仅仅是安装不同的 Python 版本&#xff0c;还涉及到依赖关系的兼容…...

MCP 协议解读:STDIO 高效通信与 JSON-RPC 实战

本文深度解析 MCP 协议的传输机制与消息格式&#xff0c;涵盖 stdio、SSE 及自定义传输方式&#xff0c;剖析 JSON-RPC 2.0 的请求、响应与通知设计。 结合 RooCode 开源实现与天气查询案例&#xff0c;揭秘如何通过 MCP 实现跨进程通信与高效服务集成&#xff0c;为开发者提供…...

AI心理健康服务平台项目面试实战

AI心理健康服务平台项目面试实战 第一轮提问&#xff1a; 面试官&#xff1a; 请简要介绍一下AI心理健康服务平台的核心技术架构。在AI领域&#xff0c;心理健康服务的机遇主要体现在哪些方面&#xff1f;如何利用NLP技术提升用户与AI的心理健康对话体验&#xff1f; 马架构…...

路由器重分发(OSPF+RIP),RIP充当翻译官,OSPF充当翻译官

路由器重分发&#xff08;OSPFRIP&#xff09; 版本 1 RIP充当翻译官 OSPF路由器只会OSPF语言&#xff1b;RIP路由器充当翻译官就要会OSPF语言和RIP语言&#xff1b;则在RIP中还需要将OSPF翻译成RIPOSPF 把RIP路由器当成翻译官&#xff0c;OSPF路由器就只需要宣告自己的ip&am…...

29-算法打卡-字符串-KMP算法理论2-第二十九天

1、KMP算法前缀表计算逻辑 可以查看上一章节的前缀表概念以及逻辑&#xff0c;KMP算法基础理论[基础概念、前缀、后缀、最长公共前后缀、前缀表] 2、KMP算法前缀表使用 当模式串和文本串匹配失败的时候&#xff0c;前缀表会告诉我们下一次的匹配中&#xff0c;模式串应该跳到…...

解锁生成式AI潜力的金钥匙

一、引言&#xff1a;生成式AI的浪潮与“提示词”的崛起 在短短几年内&#xff0c;生成式人工智能&#xff08;Generative AI&#xff09;以前所未有的速度席卷全球&#xff0c;从文字创作到图像生成&#xff0c;从代码辅助到科学研究&#xff0c;以ChatGPT、Midjourney、DALL…...

统计定界子数组的数组

前言&#xff1a;看到这个题目的时候&#xff0c;只想着怎么暴力枚举右端点&#xff0c;结合线段树还是会超时&#xff0c;没找到很好的处理方法 超时代码 class Tree1:def __init__(self,n):self.t [0]*(4*n)def update(self,o,l,r,index,va):if lr:self.t[o] vareturnmid …...

JAVA---字符串

ctrlN 搜索界面&#xff08;idea&#xff09; API和API帮助文档 API &#xff1a; 应用程序编程接口&#xff08;换句话说&#xff0c;就是别人已经写好了&#xff0c;我们不需要再编写&#xff0c;直接使用即可&#xff09; Java API &#xff1a;就是JDK中提供的各种功能…...