- 第一部分:BM25 检索介绍BM25 是一种用于信息检索的概率性排序函数,它用于估算文档与查询的相关性分数。它是经典的 TF-IDF 方案的进化,但效果通常更好,是现代搜索引擎中的基石算法之一(尽管很多最新系统已经转向基于神经网络的模型,但 BM25 依然是一个强大且高效的基线)。 核心思想BM25 的核心思想是:一个查询中的每个词项(term)对文档的相关性都有贡献,但这个贡献不是线性的... 第一部分:BM25 检索介绍BM25 是一种用于信息检索的概率性排序函数,它用于估算文档与查询的相关性分数。它是经典的 TF-IDF 方案的进化,但效果通常更好,是现代搜索引擎中的基石算法之一(尽管很多最新系统已经转向基于神经网络的模型,但 BM25 依然是一个强大且高效的基线)。 核心思想BM25 的核心思想是:一个查询中的每个词项(term)对文档的相关性都有贡献,但这个贡献不是线性的...
- 问题背景:一个令人困惑的崩溃前几天在调试一个C++程序时,遇到了一个让人百思不得其解的问题:程序运行过程中一切正常,数据操作看起来都很正确,但在释放内存时却突然崩溃。代码大致如下:#include <iostream>#include <cstdlib>void problematicFunction() { // 申请一块较小的内存 int* data = (int*)mal... 问题背景:一个令人困惑的崩溃前几天在调试一个C++程序时,遇到了一个让人百思不得其解的问题:程序运行过程中一切正常,数据操作看起来都很正确,但在释放内存时却突然崩溃。代码大致如下:#include <iostream>#include <cstdlib>void problematicFunction() { // 申请一块较小的内存 int* data = (int*)mal...
- VS2022 C++调试完全指南 一、调试环境准备 1.1 先决条件安装Visual Studio 2022(17.12+版本)勾选"使用C++的桌面开发"工作负载若已安装VS但缺少工作负载:选择 工具 > 获取工具和功能,在安装程序中勾选 使用C++的桌面开发 并点击 修改 1.2 支持与限制✅ 支持语言:C++、C#、Visual Basic、Python等❌ 限制:F#不支持"编辑并... VS2022 C++调试完全指南 一、调试环境准备 1.1 先决条件安装Visual Studio 2022(17.12+版本)勾选"使用C++的桌面开发"工作负载若已安装VS但缺少工作负载:选择 工具 > 获取工具和功能,在安装程序中勾选 使用C++的桌面开发 并点击 修改 1.2 支持与限制✅ 支持语言:C++、C#、Visual Basic、Python等❌ 限制:F#不支持"编辑并...
- 走过了C语言的道路,终于迎来了C++的学习之旅,在经历面向过程的不断打磨,相信大家积累了不少的代码基础了,即将到来的是面向对象的语言——C++,C++的知识点稍显杂碎,或许在初步的学习会感觉到举步艰难,但是阳光总在风雨后,打好基础学到 stl 库的时候就会发现别样的彩虹!🌈😻 走过了C语言的道路,终于迎来了C++的学习之旅,在经历面向过程的不断打磨,相信大家积累了不少的代码基础了,即将到来的是面向对象的语言——C++,C++的知识点稍显杂碎,或许在初步的学习会感觉到举步艰难,但是阳光总在风雨后,打好基础学到 stl 库的时候就会发现别样的彩虹!🌈😻
- 案例背景与问题重现 初始框架设计shape.h (框架初始版本)// 图形框架基类 - 版本1.0#include <string>#include <utility>#include <iostream>class Shape {public: Shape() = default; virtual ~Shape() = default; // 绘制接口 v... 案例背景与问题重现 初始框架设计shape.h (框架初始版本)// 图形框架基类 - 版本1.0#include <string>#include <utility>#include <iostream>class Shape {public: Shape() = default; virtual ~Shape() = default; // 绘制接口 v...
- 在 C++ 的日常开发中,std::string 是我们最亲密无间的伙伴之一。然而,您是否曾想过,这个看似简单的字符串类背后隐藏着怎样的性能优化魔法?今天,我们将深入探讨现代 C++ 标准库中一个经典且至关重要的优化策略——短字符串优化(Small String Optimization, SSO)。理解 SSO,不仅能让我们更好地欣赏库作者们的智慧,也能指导我们写出更高效的代码。 什么是 ... 在 C++ 的日常开发中,std::string 是我们最亲密无间的伙伴之一。然而,您是否曾想过,这个看似简单的字符串类背后隐藏着怎样的性能优化魔法?今天,我们将深入探讨现代 C++ 标准库中一个经典且至关重要的优化策略——短字符串优化(Small String Optimization, SSO)。理解 SSO,不仅能让我们更好地欣赏库作者们的智慧,也能指导我们写出更高效的代码。 什么是 ...
- 在现代C++中,智能指针是资源管理的基石。它们不仅是RAII思想的优雅实现,更蕴含着精巧的设计哲学和性能考量。本文将深入std::unique_ptr和std::shared_ptr的内部机制,揭示其如何安全、高效地管理资源生命周期。 一、std::unique_ptr:独占所有权的艺术std::unique_ptr践行着“独占所有权(Exclusive Ownership)”的简单而高效的... 在现代C++中,智能指针是资源管理的基石。它们不仅是RAII思想的优雅实现,更蕴含着精巧的设计哲学和性能考量。本文将深入std::unique_ptr和std::shared_ptr的内部机制,揭示其如何安全、高效地管理资源生命周期。 一、std::unique_ptr:独占所有权的艺术std::unique_ptr践行着“独占所有权(Exclusive Ownership)”的简单而高效的...
- 本文旨在帮助C++初学者理解和掌握模板的基本概念和使用方法。我们将从模板的基础知识入手,逐步介绍函数模板和类模板的定义和使用,最后通过几个实用的例子巩固所学内容。 本文旨在帮助C++初学者理解和掌握模板的基本概念和使用方法。我们将从模板的基础知识入手,逐步介绍函数模板和类模板的定义和使用,最后通过几个实用的例子巩固所学内容。
- 日期处理是编程中常见且重要的一个领域。无论是在日志记录、事件管理,还是在日程安排中,日期都扮演着至关重要的角色。通过实现一个日期类,我们不仅可以深入理解类和对象的概念,还能将这些理论知识应用于解决实际问题。 日期处理是编程中常见且重要的一个领域。无论是在日志记录、事件管理,还是在日程安排中,日期都扮演着至关重要的角色。通过实现一个日期类,我们不仅可以深入理解类和对象的概念,还能将这些理论知识应用于解决实际问题。
- 在 C++ 编程中,内部类(也称为嵌套类)是一个定义在另一个类作用域内的类。 内部类提供了一种封装和逻辑分组的方式,使得代码更加模块化和易于管理。 本文将详细介绍 C++ 中内部类的定义、使用场景、访问权限及其与外围类(外部类)的相互作用。 在 C++ 编程中,内部类(也称为嵌套类)是一个定义在另一个类作用域内的类。 内部类提供了一种封装和逻辑分组的方式,使得代码更加模块化和易于管理。 本文将详细介绍 C++ 中内部类的定义、使用场景、访问权限及其与外围类(外部类)的相互作用。
- 在C++编程中,匿名对象是一种特殊的对象,它在创建时没有被命名。 这种对象通常用于在单个语句中执行一系列操作或调用某个函数,而不需要将结果存储到变量中。 本文将详细介绍C++中的匿名对象,包括其概念、类型、使用场景以及注意事项。 在C++编程中,匿名对象是一种特殊的对象,它在创建时没有被命名。 这种对象通常用于在单个语句中执行一系列操作或调用某个函数,而不需要将结果存储到变量中。 本文将详细介绍C++中的匿名对象,包括其概念、类型、使用场景以及注意事项。
- C++中的const关键字远非一个简单的“常量”修饰符。它是类型系统的重要组成部分,是向编译器和程序员表达意图的强大工具。理解const的多面性,是编写正确、高效、可维护的C++代码的关键。本文将深入探讨const的各个维度,揭示其背后的设计理念和实现细节。 一、基础:指向常量的指针 vs 指针常量这是const用法的第一个难点,理解声明规则至关重要。 1. 解读声明:向右看齐法则要理解复杂... C++中的const关键字远非一个简单的“常量”修饰符。它是类型系统的重要组成部分,是向编译器和程序员表达意图的强大工具。理解const的多面性,是编写正确、高效、可维护的C++代码的关键。本文将深入探讨const的各个维度,揭示其背后的设计理念和实现细节。 一、基础:指向常量的指针 vs 指针常量这是const用法的第一个难点,理解声明规则至关重要。 1. 解读声明:向右看齐法则要理解复杂...
- 我们都已经听过这样的建议:“使用 std::move 来避免昂贵的拷贝,提升性能。” 这没错,但如果你对它的理解仅止于此,那么你可能正在黑暗中挥舞着一把利剑,既可能披荆斩棘,也可能伤及自身。移动语义是 C++11 带来的最核心的特性之一,但它也伴随着大量的误解。今天,我们将剥开它的层层外壳,探究其本质,并回答那些在面试和高级开发中真正重要的问题。 第一章:最大的误解——std::move 做... 我们都已经听过这样的建议:“使用 std::move 来避免昂贵的拷贝,提升性能。” 这没错,但如果你对它的理解仅止于此,那么你可能正在黑暗中挥舞着一把利剑,既可能披荆斩棘,也可能伤及自身。移动语义是 C++11 带来的最核心的特性之一,但它也伴随着大量的误解。今天,我们将剥开它的层层外壳,探究其本质,并回答那些在面试和高级开发中真正重要的问题。 第一章:最大的误解——std::move 做...
- C++作为一门给予程序员极大自由同时也要求极高责任的语言,其对象生命周期的管理是核心与精髓所在。理解这个过程,远不止知道“构造函数和析构函数被调用”那么简单。今天,我们将深入内存分配、各种构造函数、编译器的优化魔法以及异常安全等细节,彻底剖析一个C++对象的“一生”。 一、诞生之初:内存分配与构造的分离在C++中,一个对象的诞生实际上分为两步:内存分配 (Allocation):为对象申请足... C++作为一门给予程序员极大自由同时也要求极高责任的语言,其对象生命周期的管理是核心与精髓所在。理解这个过程,远不止知道“构造函数和析构函数被调用”那么简单。今天,我们将深入内存分配、各种构造函数、编译器的优化魔法以及异常安全等细节,彻底剖析一个C++对象的“一生”。 一、诞生之初:内存分配与构造的分离在C++中,一个对象的诞生实际上分为两步:内存分配 (Allocation):为对象申请足...
- 本案例将指导开发者如何使用鲲鹏DevKit代码迁移工具,以smartdenovo软件包为待迁移案例展示C语言的源码快速迁移过程,达到快速完成C&C++语言源码迁移的实验目的。 本案例将指导开发者如何使用鲲鹏DevKit代码迁移工具,以smartdenovo软件包为待迁移案例展示C语言的源码快速迁移过程,达到快速完成C&C++语言源码迁移的实验目的。
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签