- 博客(48)
- 收藏
- 关注
原创 01-Trie-持久化前缀树实现
BusTub P0:持久化前缀树实现摘要 CMU数据库课程项目BusTub的首个任务要求实现持久化前缀树(Trie),核心特点包括: 持久化设计:所有修改操作(Put/Remove)返回新Trie对象,原Trie保持不变 类结构:TrieNode(基础节点)、TrieNodeWithValue(带值节点)、Trie(对外接口) 关键约束:不可变数据结构(全部const修饰)、共享节点(shared_ptr)、支持不可拷贝类型 操作逻辑: Get:沿字符路径查找,验证节点类型后返回值指针 Put:自底向上重建
2026-06-19 22:15:55
194
原创 红黑树详解
如果p是g的右,c是p的右,那么以g为旋转点进⾏左单旋,再把p变⿊,g变红即可。 c为红,p为红,g为⿊,u不存在或者u存在且为⿊,u不存在,则c⼀定是新增结点,u存在且为⿊,则 c⼀定不是新增,c之前是⿊⾊的,是在c的⼦树中插⼊,符合情况1,变⾊将c从⿊⾊变成红⾊,更新上 来的。 c为红,p为红,g为⿊,u不存在或者u存在且为⿊,u不存在,则c⼀定是新增结点,u存在且为⿊,则 c⼀定不是新增,c之前是⿊⾊的,是在c的⼦树中插⼊,符合情况1,变⾊将c从⿊⾊变成红⾊,更新上 来的。
2026-05-26 18:59:00
397
原创 数据结构---算法复杂度详解
本文系统讲解了数据结构与算法的基础概念及其重要性,重点分析了算法复杂度这一核心内容。首先明确了数据结构和算法的定义,强调其在校园招聘笔试面试中的关键地位。通过腾讯、猎豹等企业真实面试题展示复杂度问题的实际应用场景。文章详细阐述了时间复杂度概念,指出其作为函数T(N)衡量算法执行次数的本质,并通过具体代码示例演示了如何计算程序执行次数。最后介绍大O渐进表示法,说明其用于描述算法增长量级的数学原理,提供计算规则和实际应用方法。全文为学习数据结构和算法提供了清晰的理论框架和实践指导。
2026-04-22 18:12:20
397
原创 C++AI大模型接入SDK—ChatSDK封装
摘要 本文介绍了C++ AI大模型接入SDK的开发实现。首先解释了SDK(软件开发工具包)的概念,将其比作程序员的"工具箱",包含库文件、API接口、文档等组件,并对比了SDK与API的区别。然后详细展示了ChatSDK的代码实现,该SDK整合了模型管理和会话管理功能,提供统一接口。核心功能包括:初始化模型、创建/获取/删除会话、获取模型列表、发送消息(支持全量返回和流式响应)等。通过封装ChatGPT、DeepSeek等模型提供者,简化了AI模型的接入过程。
2026-01-31 19:47:30
762
原创 C++AI大模型接入SDK—模型、会话、数据管理
本文介绍了使用C++ SDK通过Ollama本地部署DeepSeek大模型的完整方案。针对云端服务的隐私、费用和网络依赖等问题,提出本地部署解决方案,详细说明了Ollama工具的安装配置和模型管理。文章提供了C++ SDK的核心实现代码,包括模型初始化、全量消息发送和流式响应处理等功能模块,并展示了通过SQLite实现会话持久化的数据管理机制。通过实际测试验证了本地部署的可行性,为需要数据隐私保护、离线使用或高可控性的应用场景提供了实用的技术参考。
2026-01-29 15:19:28
1329
原创 C++AI大模型接入SDK—Ollama本地接入Deepseek
本文介绍了使用C++ SDK通过Ollama本地接入DeepSeek大模型的技术方案。针对云端大模型的隐私风险、费用和网络依赖等问题,提出本地部署方案,利用Ollama开源工具实现模型的快速启动和管理。文章详细说明了Ollama的安装配置、模型下载与管理,并提供了C++ SDK的核心实现代码,包括模型初始化、全量消息发送和流式响应处理等功能。通过实际测试验证了本地部署的可行性和效果,为需要数据隐私保护、离线使用或高可控性的应用场景提供了完整的解决方案。
2026-01-29 14:19:22
1422
原创 C++AI大模型接入SDK—Genimi接入封装
本文介绍了C++实现的Gemini大模型接入SDK,主要包括初始化设置和API调用两部分。SDK通过继承ILLMProvider接口实现GeminiProvider类,提供模型初始化、可用性检查、名称描述获取等功能。Gemini模型兼容OpenAI API格式,使用POST请求/v1beta/openai/chat/completions接口,需携带API Key和消息历史记录。实现包含全量返回和流式响应两种消息发送方式,可快速接入Gemini系列大模型进行对话交互。项目代码已开源在Gitee平台。
2026-01-28 20:11:47
937
原创 C++AI大模型接入SDK—gpt-4o-mini大模型接入
ChatGPT是一个基于OPenAI的大语言模型(如GPT-3、GPT-4)构建的产品或服务,一个可以直接使用的聊天机器人应用,允许用户与语言模型进行交互,生成文本。gpt-4o-mini是一个具体的大语言模型,是OpenAI开发的GPT系列模型中的一个变种,具有特定的架构和训练数据,用于生成文本。
2026-01-27 15:49:28
1016
原创 C++AI大模型接入SDK—deepseek接入封装
本文介绍了DeepSeek AI大模型接入SDK的封装实现。主要内容包括: DeepSeek API接口说明:兼容OpenAI的Chat Completion接口,包含请求URL、请求头参数、请求体参数和响应格式的详细说明,特别强调了无状态服务原则。 温度参数(temperature)的使用场景建议:不同温度值适用于代码生成、数据分析、通用对话、翻译和创意写作等不同场景。 C++ SDK封装实现:展示了DeepSeekProvider类的接口设计,包括模型初始化、可用性检测、获取模型名称和描述等方法。 初始
2026-01-24 20:25:58
7181
1
原创 C++AI大模型接入SDK—API接入大模型思路
大模型需要强大的算法支持,训练一个大模型的成本太高,动辄几万甚至上百万,而且中间技术门槛也比较高,普通用户本地部署成本很高。为了降低大家的使用门槛,各个大模型厂商都开放了基于HTTP协议的大模型的API接口,不仅可以让企业或个人方便快速集成大模型能力,专注业务开发,构建自己个性化的服务,也能吸引大量开发者参与开发出各种应用服务,还能凑近整个生态的繁荣。
2026-01-23 23:56:52
1530
1
原创 C++AI大模型接入SDK—快速上手
本文介绍了C++AI大模型接入SDK——ChatSDK的快速上手方法。ChatSDK提供多种功能,包括模型管理、会话创建、消息收发等。文章详细展示了如何通过ChatSDK接入DeepSeek模型实现对话功能,包括初始化配置、创建会话、发送消息等关键步骤,并提供了完整的示例代码和CMake编译配置。通过该SDK,开发者可以快速集成AI大模型能力到C++应用中。
2026-01-20 22:23:09
360
原创 C++AI大模型接入SDK—ChatSDK使用手册
ChatSDK是一款基于C++实现的大模型接入库,支持多种主流AI模型接入。该SDK目前可接入DeepSeek、通义千问、ChatGPT等云模型,以及Ollama本地模型,提供全量和流式两种消息交互方式。SDK采用模块化设计,包含模型管理器、会话管理器和数据持久化模块,使用SQLite存储会话历史。开发者可通过简单的API调用实现多轮对话、历史会话管理等功能。项目提供完整的CMake构建脚本,安装后包含静态库和头文件,支持快速集成到C++项目中。典型使用流程包括初始化模型配置、创建会话、发送消息等步骤,示例
2026-01-20 21:38:26
930
原创 C++AI大模型接入SDK—环境搭建
文章摘要 本文介绍了C++ AI大模型接入SDK的环境搭建过程。首先概述了当前主流AI编程工具(如Copilot、Fitten Code等)和IDE(如Cursor、Trae等)的特点。项目选择了字节的Trae IDE作为开发环境,详细说明了其安装配置步骤,包括远程SSH连接和必备插件(clangd、CMake Tools)的安装。最后列出了项目依赖的第三方库(gflags、spdlog、jsoncpp等)的安装方法,特别说明了header-only库cpp-httplib的配置方式。整个环境搭建过程为后续
2026-01-20 20:32:41
1200
原创 c++AI大模型接入SDK–项目简介
本项目开发了一个C++ AI大模型接入SDK,实现了远程和本地大模型接入功能。项目包含ChatSDK核心库,支持DeepSeek、ChatGPT、Gemini等多种云端模型和本地Ollama部署,提供会话管理、历史记录存储等统一接口。基于该SDK开发了网页版AI聊天助手,支持会话管理、多模型切换等功能。系统采用分层架构,使用cpp-httplib、spdlog等第三方库,通过CMake构建。项目开源地址提供完整代码和技术文档,帮助开发者快速实现大模型集成应用。
2026-01-20 20:12:54
704
原创 map和set的使用
摘要 本文介绍了C++中的序列式容器和关联式容器,重点讲解了set和map系列容器的使用。set是基于红黑树实现的关联式容器,具有自动去重和排序功能,提供高效的增删查操作(O(logN))。文章详细说明了set的构造方法、迭代器使用以及常用操作如insert、find、erase等,并比较了set与multiset的差异。set适用于需要唯一键值的场景,而multiset则允许键值重复。通过多个代码示例演示了这些容器的实际应用。
2025-11-18 16:26:21
384
原创 c++之继承
C++继承机制详解 本文介绍了C++中面向对象程序设计的重要概念——继承。继承允许在保持原有类特性的基础上进行扩展,形成派生类。通过示例展示了如何抽取公共属性和方法到基类中实现代码复用。 主要内容包括: 继承的基本概念与定义格式 基类和派生类之间的访问权限变化 继承类模板的使用方法 基类和派生类间的对象转换关系 继承体系中的作用域规则与同名成员隐藏问题 文章通过具体代码示例演示了public继承的实际应用,并对比分析了不同继承方式下的访问控制特点。特别强调了在实际开发中应遵循的继承使用规范,如尽量避免定义同
2025-11-14 16:02:13
716
原创 c++模板进阶
C++模板进阶主要包括:非类型模板参数(使用常量作为模板参数)、模板特化(针对特殊类型定制实现)和模板分离编译问题。非类型模板参数需为编译期常量。模板特化分为函数特化(不建议使用)和类特化(包括全特化和偏特化)。分离编译时模板定义需放在头文件中,否则会导致链接错误。这些特性使模板更灵活,能处理特殊场景需求。
2025-11-13 16:06:28
1013
原创 stack和queue
本文介绍了三种常用容器适配器:stack、queue和priority_queue。stack是后进先出(LIFO)结构,提供了push、pop、top等基本操作,可通过vector模拟实现。queue是先进先出(FIFO)结构,底层通常使用list或deque实现。priority_queue是一种优先队列,能自动保持元素有序(默认为最大堆),基于vector实现。文章详细说明了各容器的接口使用方法,并提供了相关LeetCode/牛客网题目示例代码,如最小栈、逆波兰表达式求值等。对于每种容器,还介绍了其模
2025-11-04 20:16:25
793
原创 c++中list详解
本文详细介绍了C++中list容器的使用方法和特性。主要内容包括:1) list的四种构造方式(指定元素数量、默认构造、拷贝构造和迭代器范围构造);2) list迭代器的使用(正向/反向迭代器、只读迭代器);3) 通过代码示例演示了list的基本操作(元素修改、遍历、插入等)。文章通过具体代码展示了list的常用接口,并配有运行结果截图,帮助读者理解list容器的核心功能和应用场景。
2025-10-27 21:45:55
945
原创 C++中的vector讲解
本文详细介绍了C++标准库中的vector容器,包括其基本概念、常用接口及使用注意事项。主要内容涵盖:1) vector的构造函数和初始化方法;2) 迭代器的使用方式(begin/end, rbegin/rend);3) 容量管理函数(size, capacity, resize, reserve),特别指出不同编译器下capacity增长机制的差异;4) 常用增删改查操作(push_back, pop_back, insert, erase等);5) 重点分析了迭代器失效问题,包括扩容操作和删除元素导致的
2025-10-21 20:01:14
894
原创 C++中string详解
本文介绍了C++中的string类,对比了C语言字符串操作的不足,文章详细讲解了string类的基本概念、auto关键字和范围for等C++11新特性,并重点阐述了string类的常用接口,包括构造函数、容量操作和遍历方法。通过示例代码展示了string类的实际应用,帮助读者掌握这一重要工具类的基本使用方法。
2025-10-18 16:59:49
1016
1
原创 C++中STL简介
STL(标准模板库)是C++标准库吸入的重要组成部分,提供可复用的数据结构和算法框架。STL起源于HP实验室的原始版本,后发展出多个分支版本,其中艇SGI版本被GCCilig采用,具有良好的高傲可读性。STL包含六大核心组件: может容器你为什么、算法、迭代器、仿函数、适配 wreath器和空间配置器。在笔试kerja、面试和实 work际开发中,STL都扮演着李重要角色,被誉为"C++开者的必备技能"。学习STL应遵循"能用、明理、能扩展"的递进式路径风尚開発。
2025-10-12 10:44:10
436
原创 c++模板初阶
本文介绍了C++模板编程的基本概念和应用。首先通过实现通用交换函数的需求,展示函数重载方式的局限性,引出泛型编程的概念。重点讲解了函数模板的使用方法,包括模板定义格式、工作原理(编译器根据实参类型生成特定版本代码)以及两种实例化方式(隐式和显式)。同时对比了模板函数与普通函数的匹配规则,指出模板函数不允许自动类型转换的特性。通过具体代码示例,帮助读者理解如何利用模板实现类型无关的通用代码,从而提高代码复用率和可维护性。
2025-10-09 11:55:05
398
原创 C++中的内存管理
C++内存管理摘要 本文介绍了C++中的内存管理机制,主要内容包括:1) C/C++内存分布模型(栈、堆、静态区、代码段);2) C语言动态内存管理方式(malloc/calloc/realloc/free)及其区别;3) C++新增的new/delete操作符,相比malloc/free能自动调用构造/析构函数;4) operator new/delete底层实现原理;5) new/delete对内置类型和自定义类型的处理差异;6) 定位new表达式在已分配内存上初始化对象的功能。文章通过代码示例展示了各
2025-10-04 18:12:08
709
原创 类和对象(下篇)
本文总结了C++类和对象的高级特性,包括: 构造函数初始化列表的深入使用,强调引用、const成员必须通过初始化列表初始化,并解释了初始化顺序与声明顺序的关系。 类型转换机制,介绍了通过构造函数实现隐式类型转换,以及explicit关键字的作用。 静态成员变量和静态成员函数的特点,包括必须在类外初始化,没有this指针等特性。 友元机制,包括友元函数和友元类的定义和使用,说明友元可以突破封装访问私有成员的特性。 文章行者备了代码示例各概念的实际应用场景。
2025-10-01 18:04:44
642
原创 类和对象(中)
文章摘要: 本文介绍了C++中类的默认成员函数,重点讲解了构造函数和析构函数。构造函数用于对象初始化,具有自动调用、重载等特点;析构函数用于资源清理,在对象生命周期结束时自动调用。文章详细分析了默认生成函数的行为特点,并通过Stack和MyQueue等示例代码展示了如何正确使用这些成员函数。关键点包括:编译器自动生成的构造/析构函数对内置类型和自定义类型的不同处理方式,以及何时需要自行实现这些函数。还比较了C++与C在资源管理上的差异,体现了C++构造/析构机制的便利性。
2025-09-29 09:34:46
991
原创 类和对象(上)
本文介绍了C++中类和对象的基础知识,主要包括:1. 类的定义格式,使用class关键字定义类,包含成员变量和成员函数;2. 访问限定符(public/protected/private)及其作用域规则;3. 类域的概念及作用域操作符的使用;4. 类的实例化过程,区分类声明和对象创建;5. 对象大小计算规则,包括内存对齐原则;6. this指针的原理,解释成员函数如何区分不同对象。文章通过代码示例展示了这些概念的实际应用,并对比了C++中struct和class的区别。
2025-09-27 15:34:07
722
原创 C++入门基础
本文介绍了C++编程语言的发展历史、版本更新、重要性以及基础语法。主要内容包括: C++发展历程:从1979年Bjarne Stroustrup在贝尔实验室开始,到1998年成为ANSI/ISO标准,并介绍了各版本更新情况。 C++的重要性:通过编程语言排行榜展示其热度,并详细说明在服务器端、游戏引擎、机器学习、音视频处理等领域的广泛应用。 基础语法入门:包括第一个C++程序示例、命名空间(namespace)的概念和使用方法。命名空间主要用于解决命名冲突问题,可以定义变量/函数/类型,支持嵌套定义和多文件
2025-09-25 14:06:10
659
1
原创 使用MCP服务通过自然语言操作数据库(vscode+cline版本)
在VSCode中,通过使用cline插件,基于MySQL的MCP服务,利用自然语言实现对数据库的增删查改。
2025-04-14 21:00:00
2774
10
原创 联通用户管理系统(二)
本文章时Django pythonWeb开发的第六篇文章,主要介绍了靓号管理界面的开发,包括新建靓号,编辑靓号,数据库中靓号表结构的设计,编辑靓号,搜索功能,分页功能
2025-02-22 11:34:57
808
原创 Linux简介和环境搭建
Linux 操作系统有多个主流发行版本,每个版本根据不同的目标、特点和使用场景为用户提供了不同的功能和体验。总结:• 初学者:Ubuntu、Linux Mint。• 开发者和技术爱好者:Fedora、Arch Linux、Manjaro。• 企业用户和服务器管理员:Debian、CentOS、Rocky Linux、AlmaLinux。• 安全专业人士:Kali Linux。• 系统管理员:openSUSE、Debian。
2025-01-14 20:46:51
947
4
原创 mysql本地安装和pycharm链接数据库操作
Python相关:基础、函数、数据类型、面向、模块。前端开发:HTML、CSS、JavaScript、jQuery。【静态页面】
2025-01-12 16:07:58
1660
原创 结构体—简单通讯录实现
结构体是C语言中重要的复合数据类型,能够有效地组织和管理相关数据。通过结构体,可以实现复杂的数据结构,如链表和通讯录等。
2024-09-03 14:26:25
1077
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅