刷新
BUUCTF-[ZJCTF 2019]NiZhuanSiWei

博主头像 总结一下解题过程: ?text=XXX, 这个太简单了, 不用记 ?file=XXXXuseless.php 老办法, 用base64编码的方式读到源码内容, 发现是flag类 ?password=flag对象的序列化内容, 虽然类没有写构造函数, 但是可以手动的指定对象的file属性的值为:php ...

QSFP、SFP、CFPx

一、SFP / QSFP / CFPx 是啥? 它们都是 光模块(Optical Transceiver)规格,作用都是: 把电信号 ↔ 光信号转换,实现光纤高速通信 1️⃣ SFP(Small Form-factor Pluggable) 小型可插拔光模块 支持 1G 或 10G 速率 外形小巧, ...

ICT 测试程序

大专及以上学历,有2年以上ICT测试维护经验;2、熟悉安捷伦i3070 测试程序开发; 核心概念: 是电子制造测试的一种方法 主要用来测试 PCB(印刷电路板)上的元器件是否焊接正确、性能是否合格 测试对象包括: 电阻、电容、电感(阻值、容量) 二极管、三极管、MOS管(极性、导通性) 集成电路引脚 ...

第61天(中等题 数据结构)

博主头像 打卡第六十一天 2道中等题 题目: 思路:贪心,从左到右遍历,尽可能保留更多元素 代码: class Solution { public: int minDeletion(vector<int>& nums) { for (int i = 0; i < n - 1; i++) {// 只遍历到倒数第 ...

8k双休和12k单休,选哪个?

博主头像 大家好,我是良许。 昨天有个粉丝私信我,说他拿到两个offer,一个是8k双休,一个是12k单休,问我该怎么选。看到这个问题,我立马想起了自己27岁那年面临的选择——当时我手上也有两个offer,一个是世界500强外企双休但薪资一般,另一个是广州CVTE 5.5天班(当时)但钱给得多。最后我选了外企 ...

Level 8 → Level 9

博主头像 使用上一关密码ssh连接 ssh -p 2220 bandit8@bandit.labs.overthewire.org 使用sort排序data.txt里面的文件,uniq -u找出只出现一次的密码 sort data.txt | uniq -u ...

安装nvidia

apt update sudo apt install ubuntu-drivers-common apt install nvidia-driver-550pip install uv uv venv --python=3.12 source .venv/bin/activate git clon ...

12.20

今天修改故事系统代码import pymysql 连接MySQL数据库 conn = pymysql.connect( host='localhost', user='root', password='cyy1811068002', database='stories', charset='utf8 ...

面向对象回顾

博主头像 面向对象 封装 将一个事物的所有变量和方法封装到一个类里面。 标准javabean包括:私有变量并且定义,空参和含参的构造方法,每个变量的get和set方法。 继承 1.几个定义的物体相似的类(猫,狗,鱼),将相同的部分抽出来定义为父类(动物),减少代码冗杂。 2.子类 extends 父类。 3. ...

途知·Bilibili多模态数据采集与AI融合解析

摘要:本文记述了在“途知·智能旅行助手”项目中,针对 Bilibili 视频平台进行多模态数据采集的技术实现。不同于传统的文本爬虫,本模块创新性地构建了 “Selenium会话托管 + yt-dlp音频流分离 + Paraformer语音转写 + LLM智能摘要” 的完整流水线,解决了动态渲染、强反 ...

OI 补题

博主头像 累计挂分:0 赛时得分 T1 T2 T3 T4 总分 R1 R2 场切 绿 蓝 紫 黑 0 0 0 0 R1 题号 T1 T2 T3 T4 难度 预估分数 实际分数 补题 摘录: R2 题号 T1 T2 T3 T4 难度 预估分数 实际分数 补题 摘录: ...

赛生新

博主头像 8题榜首,what can i say,被一万个人 n+1 A 子序列匹配,容易做到 \(O(nm)\) Code #include <bits/stdc++.h> using namespace std; char s[105]; //CCNU HUST HZAU WHU signed main( ...

Level 7 → Level 8

博主头像 使用上一关的密码ssh连接 ssh -p 2220 bandit7@bandit.labs.overthewire.org 使用grep在data.txt里面搜索字符串"millionth"获得密码 grep "millionth" data.txt ...

家庭网络入门指南,搭建,维护,测试一条龙

博主头像 宽带套餐选择,这个看家庭人数,以及个人使用,个人建议是1个人分配到100兆,依次类推 注意家用宽带一般是标下载速度,比如1000兆就是下载可以到1000兆,上传速度就达不到1000兆,大概率只能有10%下载速度 千兆宽带测速 现在运营商在推广fttr,套餐在1000兆以上,师傅大概率会推销这个套餐 ...

在 Proxmox 上安装 Virtual DSM (vDSM)

博主头像 在 Proxmox 上安装 Virtual DSM (vDSM) vDSM 优点 支持使用 virtio-balloon 进行动态调整虚拟机在宿主机上的内存占用。 安装步骤 1. 生成镜像 首先,您需要生成 Virtual DSM 的镜像。您可以使用修改过的 Docker vDSM 安装脚本 来完成 ...

深入解析:如何在实验室服务器上搭建python虚拟环境?安装conda并配置虚拟环境

‍程序员三明治:个人主页 个人专栏: 《设计模式精解》《重学数据结构》先做到 再看见!目录linux常用命令有哪些一、看看你的是什么gpu?二、安装Anaconda三、搭建自己的虚拟环境四、激活自己的环境碎碎念(可以不看)创建环境激活环境离开环境共享环境列出环境删除环境 XSell安装 链接: xs ...

【Ubuntu】Ubuntu 虚拟机配置三网段(桥接-WIFI、仅主机、桥接-开发板)

博主头像 引言 为了更方便使用虚拟机,我们来配置一下三网段。 网络连接模式 模式 适用场景 特点 类比 NAT 个人上网/新手首选 虚拟机共享主机IP,能上网但隐身 家用WiFi 桥接 服务器/需要被局域网访问 虚拟机会获得独立IP,像真机一样 手机开热点 仅主机 完全隔离的网络测试 只能和主机通信,完全不上 ...

事后诸葛亮分析报告

图书馆管理系统项目事后分析 一、设想和目标 1. 核心问题定义与用户场景 我们的软件要解决图书馆日常运营中的图书管理、借阅流程、用户权限管控、智能推荐等效率低下的问题,覆盖学生、教师、图书馆管理员、系统管理员等多角色的核心需求。该问题定义清晰,针对不同角色的典型场景(如学生检索借阅图书、管理员统计借 ...

2025.12.20

博主头像 大一上期末了 发现整个大学都没有写过日记。 半年了吧。 上大学之后迷茫了很久,到底什么是自己的人生。 之前一直都在问,一直都在徘徊,一直都在选择。 过去的几个月,自己一直被同学节奏,被老师的建议牵着鼻子走。 其实,好像没有什么可以选择的。 人生其实不必循规蹈矩,你听到的只是别人的人生,不是自己的 追 ...

const getAssetsDirFile = (url: string) => { return new URL(`../assets/${url}`, import.meta.url).href } 这个方法在最新版vite中不起作用

博主头像 你遇到的问题很常见:在 Vite 最新版(尤其是 v5+) 中,使用 new URL('../assets/xxx', import.meta.url).href 这种方式在某些上下文(如 SSR、服务端构建、或非标准模块环境)下可能失效或返回不预期的路径。 但更重要的是:这个写法本身存在设计误区。 ...

智能销售助手-langfuse评测策略

博主头像 目录一、你这个产品的评测目标先明确一句话二、评测拆 4 层(这是关键)Layer 0:业务结果层(产品级 KPI)【最重要】Layer 1:Coordinator / Router 层评测(最容易出事故)必须关注的指标Langfuse 怎么做Layer 2:Agent 能力层评测(单 Agent 的 ...

算法第五章作业

博主头像 1、对于 “最小重量机器设计问题”,回溯法的核心逻辑是:为每个部件依次选择供应商,累计总价格和总重量,若总价格超过限制则剪枝;若遍历完所有部件(到达叶子节点),则更新最小重量和最优供应商选择。 1.1、(1)解的形式:每个解是一个长度为 n 的序列 (j₁, j₂, ..., jₙ),其中: jᵢ ...

016.递归枚举

博主头像 今日做luogu枚举题单,发现很多题目共性很强 类似题目在leetcode上也有不少 共性 从一个序列中按规定选取若干元素 “ 做选择 ” 产生了一颗选择二叉树 题目数据不强,暴力遍历即可找出答案 细节差异 选取元素的限制:数量,顺序,大小(子集,组合,排列的区别) 子集:不限制数量,顺序 组合:元 ...

1小时微调 Gemma 3 270M 端侧模型与部署全流程

博主头像 Gemma 3 270M是 Google 推出的一款虽小但能力惊人的开放模型。它属于 Gemma 家族,本质上是将 Gemini 模型中使用的相同技术带入了轻量级、可定制的形式中。 你可以在 不到一小时内完成微调,并将其大小压缩到 300MB 以下,让他直接在你的浏览器中运行。 在这篇文章中,我将展 ...

实用指南:【IoTDB】从InfluxDB到IoTDB:工业时序数据处理的技术演进与选型逻辑

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈大数据与数据库应用 ⌋ ⌋ ⌋ 大数据是规模庞大、类型多样且增长迅速的数据集合,需特殊技术处理分析以挖掘价值。数据库作为数据管理的关键工具,具备高效存储、精准查询与安全维护能力。二者紧密结合,数据库为大数据提供坚实存储与处理基础,在电商、 ...

AI元人文构想:迈向人类与AI的意义共治

博主头像 AI元人文构想:迈向人类与AI的意义共治 ——从“价值对齐”到“文明共筑”的范式革命 摘要 人工智能正从工具性存在演化为潜在的“文明对话伙伴”,传统“价值对齐”范式因陷入静态化、简化论与人类中心主义困境而难以应对这一变革。本文提出“AI元人文构想”作为一种新型文明治理框架,其核心在于通过“意义行为原 ...

火山引擎 MongoDB 进化史:从扛住抖音流量洪峰到 AI 数据底座 - 指南

在生成式人工智能和大模型迅猛发展的当下,材料已不再仅仅是「存储」对象,而是智能应用的核心资产。MongoDB 凭借灵活的数据模型、丰富且高性能的查询能力以及原生向量检索能力,成为构建 RAG 框架、智能问答、推荐引擎等 AI 应用的理想基础。而在字节跳动庞大的技术版图中,MongoDB 也并非简单的 ...

深入解析:架构深度解析:衡石科技如何凭借云原生与存算分离架构重塑BI性能边界

在数据量指数级增长的时代,传统商业智能(BI)平台的架构瓶颈日益凸显——数据膨胀带来的查询延迟、有限的扩展性以及高昂的运维成本。衡石科技之所以能脱颖而出,其根基在于一套从第一天起就为大规模、多租户、实时分析场景设计的云原生与存算分离的现代化手艺架构。本文将从科技底层深入剖析,揭示其高性能背后的秘密。 ...

Doris 和 StarRocks 性能测试对比

博主头像 由于项目中选型 OLAP 数据仓库,并且涉及到比较大量的数据更新,经过筛选后比较适合的两款选型是 Doris 和 StarRocks。所以考虑对这两款数仓进行性能测试,从其中选择一款比较适合的来使用。 选型测试的时间为 2025 年 7 月份,比当前发布文章的时间要早将近半年,所以版本是依据当时的稳 ...

读人机沟通法则:理解数字世界的设计与形成01机器循环运行

博主头像 1. 计算 1.1. 计算是一个无形的陌生宇宙,它无限广阔,同时包含无限多的细节 1.2. 它是一种不遵循物理定律的原材料,在某种意义上为互联网提供了远超于电的力量 1.3. 它是一种无处不在的媒介,由经验丰富的软件开发人员和科技行业控制,他们对计算的掌控程度甚至可能威胁国家主权 1.4. 今天我们 ...

12.20

今天复习机器学习实验 深入理解支持向量机(SVM)的算法原理,能够使用Python语言实现支持向量机的训 练与测试,并且使用五折交叉验证算法进行模型训练与评估。 2、实验内容 (1)从scikit-learn 库中加载 iris 数据集或本地读取,进行数据分析; (2)采用五折交叉验证划分训练集和测 ...

格式化输入输出

1.C语言的输入输出格式 输入格式:scanf("格式控制符"变量地址)格式控制符的作用是需要输入的值按规定输入。取地址符:& 数据类型 格式符 举例 int %d int n;scanf("%d",&n) float %f flaot n;scanf("%f"&n;) double %lf dou ...

算法第五章作业

一、最小重量机器设计问题的回溯法分析 问题定义与解空间 问题要求:机器由n个部件组成,每个部件有m个供应商可选,部件i选供应商j的重量为w_ij、价格为c_ij,需在总价格不超过上限C的前提下,使机器总重量最小。 解空间:所有长度为n的供应商选择序列X=(x₁,x₂,...,xₙ),其中x_i∈{1 ...

算法第四章作业

博主头像 问题分析:选点问题的核心是:在数轴上给定若干闭区间,用最少数量的点覆盖所有区间(每个区间至少包含一个点)。 贪心策略:1、排序:将所有区间按右端点升序排列; 2、选点:初始化选点数量为 0,上一个选点位置为 “无效值”(如 - 1);遍历排序后的区间,若当前区间的左端点 > 上一个选点位置(说明当前 ...

第五章作业

对于本题,每个部件i=1,2,...,n,供应商j=1,2,...,m有m个。每个部件可以有m个选择,选n次,因此解空间的大小为mⁿ;本题的解空间树是一棵n 层的 m 叉树,即完全m叉树。 结点:当前处理的部件层数 k:表示已经处理了前k个部件,判断是否到达叶子节点; 当前总价格 sum_c:前k个 ...

PCL配准——粗配准+ICP

由于ICP本身属于精配准方法,在PCL文档中也只给出了简单的使用方式。在此,我结合自己的了解稍微拓展。对于一个点云数据我们先执行粗配准,然后再通过ICP进行精配准。 算法流程 粗配准(SAC-IA) 通过特征点先计算一个大概的初值,帮助ICP收敛到一个更准确的位置。总体流程是 空间均匀采样 → 特征 ...

CSP2025邮寄

博主头像 坐标HL寄 Day0 傍晚复习了会图论和数论板子就睡觉了 Day1 CSP-J 8:00 到达考场,熟悉了一下座位 8:20 还没开电脑怎么回事,哦原来是考场供电坏了,于是佳木斯大学赛区正式开启《流浪OIER》计划。 one hour later...... 9:40 比赛正式开始 咦这次目录怎么还 ...

esxi手动添加vmfs分区

博主头像 r730xd服务器,esxi装在m2硬盘中,由于不支持nvme引导,于是使用了clover引导u盘,现在想加一个后置的ssd,于是想着将clover放进ssd中,然后剩余部分给esxi用做存储 clover弄好后,在esxi中添加vmfs数据存储时,一直在报错无法更改主机配置,vmfs5/6都一样 ...

洛谷 P6071

博主头像 有一棵有 \(n\) 个节点,边有边权的树。令 \(E(x, y)\) 表示节点 \(x, y\) 之间的路径。 给定 \(T\) 组询问,每组询问给定· u, l, r,求出 \(E(x, l), E(x, l + 1), \dots , \dot E(x, r)\) 的交集(是一条路径)的边权之 ...

完整教程:SpingBoot自动装配流程讲解

今天,我们来详细拆解 @SpringBootApplication 注解是如何实现自动装配的。这是一个核心问题,理解它对于掌握 Spring Boot 的精髓至关重要。一、@SpringBootApplication 的构成:一个复合注解首先,@SpringBootApplication 不是一个简 ...

神经网络动力学框架NeRD在机器人仿真领域的革新

博主头像 本文介绍了Neural Robot Dynamics(NeRD),一种基于神经网络的机器人仿真框架,用于精确预测复杂关节机器人在长时域内的动力学行为。该框架通过混合预测架构和以机器人为中心的输入参数化,实现了卓越的稳定性和泛化能力,并能通过真实世界数据进行微调,有效缩小仿真与现实间的差距。 ...

Section five Homework

当预算有限时,如何造出最轻的机器?——用回溯法解“最小重量机器设计问题” 在工程与算法的交汇处,我们常常要回答这样一个问题:如何在约束下做到“刚刚好”? 今天想和大家聊一个经典但容易被忽略的组合优化问题——最小重量机器设计问题。它不像旅行商那样广为人知,却真实反映了现实中的权衡艺术:在有限成本下,如 ...

Day35less--导入与导出

博主头像 导入: less文件 @import "./7.less体验.less"; @import "./8.less注释.less"; css文件 .father { color: red; width: 1.81333333rem; } .father .son { height: 0.77333333 ...

Section four Homework

最近在刷算法题时,又遇到了一道非常经典的贪心题目:给定若干闭区间,求最少需要多少个点,使得每个区间至少包含一个点。这道题看似简单,却完美展现了贪心策略的用处。 问题描述 输入: \(n\) 个闭区间 \([l_i, r_i]\)(\(1 \le i \le n\)) 输出: 最少需要放置多少个点,使 ...

强烈推荐 wxWidgets

四、什么时候 强烈推荐 wxWidgets 结合你之前的背景,我会很明确地说: wxWidgets 非常适合你,如果你做的是: 设备调试工具 工控上位机 PLC / 运动控制配置软件 传感器 / 测试设备 PC 软件 长期运行、稳定优先的软件 特别是: C++ 不想被 Qt 的 moc / l ...

Item46--需要类型转换时请为模板定义非成员函数

1.人话版 简单来说,这一条讲的是:如果你写了一个模板类(比如“分数类”),又希望它能和普通数字(比如整数)直接做运算,那你必须把运算符函数写在类的里面,并在前面加个 friend。 如果不这样做,编译器就会变“笨”,不认你的账。 1. 遇到的麻烦:编译器“不转弯” 假设你写了一个分数的模板 Rat ...

Item45--运用成员函数模板接受所有兼容类型

1.人话版 1. 遇到的问题:模板类太死板 在 C++ 里,如果你有父类 Animal 和子类 Dog: 原生指针很聪明: 你把 Dog* 赋值给 Animal* 是理所当然的(向上转型)。 模板类很死板: 编译器觉得 SmartPtr<Dog> 和 SmartPtr<Animal> 是两个完全没关 ...

美团 商家端响应体解密

博主头像 声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! wx a15018601872 部分python代码 data = "响应体加密" result = aes_decrypt(e ...

杜教筛

博主头像 考虑对数论函数 \(f\) 求 \(\sum_{i=1}^n f(i)\)。我们需要构造 \(h=f*g\),\(*\) 指狄利克雷卷积,即 \(h(i)=\sum_{c|i}f(i)g(\frac{i}{c})\)。杜教筛对 \(h(i)\) 求和: \[\sum_{i=1}^n h(i)=\su ...

ranges::sort

C++20 核心算法:std::ranges::sort std::ranges::sort 是 C++20 引入的 Ranges(范围)算法。它不仅仅是语法糖,更通过引入 投影(Projections) 彻底改变了我们处理容器排序的方式。 1. 语法对比:简洁性与安全性 特性 老版本 std ...

PCL分割——圆柱分割

Cylinder model segmentation PCL这里的圆柱分割相当于一个SAC分割的综合运用。先利用SAC分割出多个平面点云的区域,相当于去除噪点了。然后通过得到的内点索引,去提取出除了拟合平面点之外的点,再对这里的点使用SAC去找到对应的圆柱体点云。 ...

[项目]基于正倒排索引的Boost搜索引擎---编写搜索引擎模块 Searcher - 指南

前置内容索引模块[项目]基于正倒排索引的Boost搜索引擎 编写建立索引的模块Index-CSDN博客一、整体框架1.整体架构目标功能定位:提供一个轻量级、可嵌入的本地搜索引擎后端模块。输入:原始文档集合路径(用于建索引);用户查询字符串(用于搜索)。输出:结构化 JSON 格式的搜索结果(含标题、 ...

2025年度江西南昌月嫂企业TOP5评测!专业母婴护理+实战口碑优质品牌榜单发布,守护新生家庭幸福起点

随着现代家庭对科学育儿和产后护理需求的不断升级,专业月嫂服务已成为新生家庭的重要选择。本榜单基于品牌实力、服务专业性、培训体系、客户口碑四大维度(巾帼家政新增"行业标准贡献"维度),结合真实服务案例与客户反馈数据,权威解析2025年南昌五大月嫂服务品牌综合实力,为家庭选择提供专业参考。 2025年南 ...

2025年度江西南昌育儿嫂企业TOP5评测!金牌一站式早教型育儿嫂品牌榜单发布,赋能现代家庭育儿新生态

随着双职工家庭育儿需求的持续增长,专业育儿嫂(育婴师)服务已成为保障婴幼儿健康成长的重要支撑。本榜单基于服务专业性、人员素质、安全保障、客户口碑四大核心维度(巾帼家政新增“培训体系完备度”维度),结合行业协会数据与真实客户反馈,权威解析2025年南昌五大育儿嫂服务品牌综合实力,为家庭选择提供专业决策 ...

2025年度江西南昌老人护理企业TOP7评测!专业照护+经验沉淀优质品牌榜单发布,用心守护构筑长者幸福晚年

随着社会老龄化进程加快,专业老人护理服务成为家庭照护的重要支撑。本榜单基于服务专业性、行业经验、人员素养、服务网络四大维度(巾帼家政新增“社会贡献”维度),结合行业服务标准及客户真实反馈,权威解析2025年七大老人护理品牌综合实力,为家庭选择提供专业决策参考。 2025年七大老人护理品牌综合实力排名 ...

江西南昌住家保姆/不住家保姆品牌TOP5评测!专业认证+服务保障企业榜单发布,品质家政赋能现代家庭生活

随着现代家庭对专业家政服务需求的不断攀升,住家保姆与不住家保姆服务已成为提升家庭生活品质的重要支撑。本榜单基于服务规范性、人员专业性、客户满意度三大核心维度,结合行业协会数据及真实用户反馈,权威解析2025年南昌地区五大家政品牌综合实力,为家庭选择靠谱保姆服务提供决策参考。 2025年五大保姆服务品 ...

前端开发随笔

博主头像 前端技术栈以 Jinja2 为模板,TailwindCSS 负责样式,而 Alpine.js 则是实现所有客户端交互的“魔法棒”。Alpine.js 允许我们直接在 HTML 中编写组件逻辑,极大地简化了前端开发。 aimap_fusion.html:三步联动的 AI 融创流程 此页面是项目的核心, ...

显示化隐形接口

#include <concepts> // 定义 Concept:显式描述接口要求 template<typename T> concept HasSize = requires(T a) { { a.size() } -> std::convertible_to<std::size_t>; }; ...

2025年度江西南昌家政服务/月嫂/育儿嫂/老人护理/住家保姆/不住家保姆企业首推巾帼家政:深耕家政领域,实力出圈

随着现代家庭生活节奏的加快和对高品质生活的追求,专业的家政服务已成为众多家庭的重要需求。在2025年的家政服务市场中,南昌市巾帼家庭服务有限公司(简称“巾帼家政”)凭借近26年的深耕积累与卓越服务品质,成为江西省内值得信赖的家政服务品牌。 巾帼家政:兼具品牌积淀与专业实力的家政服务典范 巾帼家政前身 ...

Item36--绝不重新定义继承而来的 non-virtual 函数

1. 现象:行为分裂(Schizophrenic Behavior) 让我们看一个反面教材。假设有一个基类 B 和一个派生类 D。基类中有一个普通函数 mf(非虚函数),但你在派生类中错误地重新定义(隐藏/Shadow)了它: #include <iostream> class B { public ...

Item34--区分接口继承和实现继承

这个 Item 讨论的是纯虚函数、非纯虚函数(普通虚函数)和非虚函数在设计意图上的巨大差异。 1. 核心概念:三种函数的不同语义 在 public 继承体系下,基类的成员函数代表了三种不同的继承契约: A. 纯虚函数 (Pure Virtual Functions) 语法: virtual void ...

PyTorch - 指南

PyTorch简介PyTorch是一个基于Python的开源机器学习库,由Meta(原Facebook)于2016年开源的Python优先深度学习框架,源自2002年的Torch库。其核心特性包括:‌动态计算图‌:支持运行时修改模型结构,调试更直观‌张量计算‌:类似NumPy的多维数组,但承受GPU ...

Item35--考虑 virtual 函数以外的其他选择

1.考虑虚函数的替代方案 核心思想:把“做什么”和“怎么做”分开 传统的 virtual 函数把“接口声明”和“具体实现”都绑定在类的继承体系内。Item 35 建议我们跳出这个框框,看看以下几种替代方案: 1. NVI 手法 (Non-Virtual Interface Idiom) 这是 C++ ...

Item32--确定你的 public 继承塑模出 is-a 关系

核心原则 Item 32 的金句:Public Inheritance means "is-a" (公有继承意味着“是一个”). 它的严格定义是: 如果类 D (Derived) 公有继承自类 B (Base),那么每一个类型为 D 的对象同时也是一个类型为 B 的对象。 任何需要 B 类型对象的地 ...

Item33--避免遮掩继承而来的名称

1. 核心现象:名称遮掩 (Name Hiding) 一句话总结:在 C++ 中,子类中的名称会遮掩(Hide)父类中的同名名称,无论参数列表是否相同。 这是由 C++ 的名称查找规则决定的: 编译器看到一个函数调用(如 d.mf1(5))。 它从最内层的作用域(子类)开始查找名为 mf1 的东西。 ...

Item30--透彻了解 inlining 的里里外外

1. Inlining 的本质:以空间换时间 inline 函数背后的思想是:将“函数调用”替换为“函数本体代码”。 优点(时间收益): 省去了函数调用的开销(压栈、跳转、返回、参数传递)。对于短小的函数,这些开销占比很大。 缺点(空间代价): 如果函数体很大,且在多处被调用,代码膨胀(Code B ...

Item31--将文件间的编译依存关系降至最低

核心痛点:编译级联 (Compilation Cascades) 在 C++ 中,如果头文件 A.h #include 了头文件 B.h,那么所有包含了 A.h 的源文件,实际上也间接依赖了 B.h。 如果 B.h 发生了一丁点修改(哪怕只是加了一个 private 成员变量),所有包含 A.h 的 ...

一周计划(2025.12.21-2025.12.27)

博主头像 高考课程安排 语文 数学 做一套实验班的周测,找出问题,解决下列问题 (upd on 2025.12.22) 向量与三角形的 “四心”; 三角函数的性质综合题; 英语 维克多阅读专练,一天一篇 (upd on 2025.12.22) 根据上周周测结果,针对性训练: 前沿社科类(\(\text{D}\ ...

Item26--尽可能延后变量定义式的出现时间

1. 核心层级:为什么要延后? 在 C 语言(特别是 C89)的旧习惯中,开发者往往喜欢在函数开头把所有变量都定义好。但在 C++ 中,这样做有两个主要的弊端: A. 避免无谓的构造/析构成本 (Unnecessary Cost) 如果一个变量定义在函数开头,但在使用它之前,函数因为抛出异常或 re ...

Item27--尽量少做转型动作

1. 语法选择:抛弃 C 风格,拥抱 C++ 风格 C 语言的旧式转型(C-style casts)长这样: (T)expression // C 风格 T(expression) // 函数风格 Scott Meyers 强烈建议不再使用上述旧式转型,而是使用 C++ 的新式转型(C++-styl ...

Item28--避免返回 handles 指向对象内部成分

1. 什么是 "Handle"? 在这里,Handle(句柄)是一个广义的概念,不仅仅指 Windows API 中的 HANDLE。任何能够让你直接访问对象内部数据的媒介,都叫 Handle。 在 C++ 中,主要指这三样东西: 指针 (Pointers) 引用 (References) 迭代器 ...

Item23--宁以 non-member、non-friend 替换 member 函数

1. 直觉 vs. 现实 我们的直觉(通常是错的) 在面向对象设计中,我们习惯把数据和操作数据的函数打包在一起。 这就导致一种思维定势:“如果有一个函数是专门用来操作类 A 的,那它就应该被写在类 A 里面,成为一个成员函数。” 我们通常认为这样封装性更好。 Item 23 的现实 Scott Me ...

Item25--考虑写出一个不抛异常的 swap 函数

1. 核心现状:默认的 std::swap 够用吗? 绝大多数情况:够用(Rule of Zero) 如果你的类遵循 Rule of Zero(只包含标准库容器、智能指针等成员),你不需要手写 swap。 class ModernWidget { std::string name; std::vec ...

<1···515253···100>