自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

constancy...

记录成长与进步...

  • 博客(25)
  • 收藏
  • 关注

原创 c++ 后端基础

C++ 是一种功能强大的通用编程语言,广泛应用于系统编程、游戏开发、实时应用、嵌入式系统等领域。作为 C 语言的扩展,C++ 保留了 C 语言的高效和灵活性,并在此基础上加入了面向对象编程(OOP)特性,如类、继承、多态、封装等。同时,C++ 也支持泛型编程,通过模板(Template)机制实现了代码的复用和类型独立性。

2024-11-18 12:52:36 1873 1

原创 DeepSeek 本地部署及使用

DeepSeek是一家中国初创企业,因其高性能、低成本的生成式 AI 大规模语言模型而备受关注。其最新发布的模型“R1”在推理能力上进行了强化学习,展现出了与 OpenAI 的 GPT-4 相当的性能。在代码能力方面,DeepSeek 的 DeepSeek-V3 模型在 Aider 代码能力排行榜中取得了 48.4% 的正确率,仅次于 OpenAI 的 o1,超过了 Claude 3.5 Sonnet。

2025-02-13 14:40:07 626

原创 c++ 多线程的使用

请设计修改程序,以确保 second() 方法在 first() 方法之后被执行,third() 方法在 second() 方法之后被执行。三个不同的线程 A、B、C 将会共用一个 Foo 实例。线程 B 将会调用 second() 方法。线程 A 将会调用 first() 方法。线程 C 将会调用 third() 方法。

2024-12-01 12:39:54 376

原创 十大排序算法

算法稳定性:单次比较后,两个值相等的邻近元素的位置在排序后,相对位置没有改变。

2024-12-01 01:22:17 1103

原创 二叉树的构建和遍历

二叉树是一种特殊的树形数据结构,其中每个节点最多只能有两个子节点,分别被称为左子节点和右子节点。🌳 二叉搜索树(Binary Search Tree, BST):左子节点的值小于根节点,右子节点的值大于根节点。🌲完全二叉树(Complete Binary Tree):节点按照层次顺序排列,最后一层的节点尽量靠左。给定一个二叉树的根节点 root ,返回 它的 前序,中序,后序,层序遍历。🌲满二叉树(Full Binary Tree):除了叶子节点外,每个节点都有两个子节点。空间复杂度:𝑂(𝑛)。

2024-11-27 13:39:14 531

原创 删除链表中的重复元素

由于给定的链表是排好序的,因此重复的元素在链表中出现的位置是连续的,因此我们只需要对链表进行一次遍历,就可以删除重复的元素。由于链表的头节点可能会被删除,因此我们需要额外使用一个哑节点(dummy node)指向链表的头节点。创建一个节点代替head节点进行遍历,当前节点的值如果等于next节点的值。给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字。返回已排序的链表。给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次。

2024-11-26 23:37:28 319

原创 一个简单的c++11 线程池实现

线程池是一种多线程管理模式,它通过预先创建一组工作线程并维护一个任务队列,将任务分发给线程处理,从而避免了频繁创建和销毁线程的开销。

2024-11-24 14:06:55 448 1

原创 Linux 使用gdb调试core文件

当程序运行过程中出现Segmentation fault (core dumped)错误时,程序停止运行,并产生core文件。core文件是程序运行状态的内存映象。

2024-11-22 16:37:42 1366 1

原创 设计LRU缓存

设计利用了哈希表和双向链表的组合,保证了LRU缓存操作的高效性。

2024-11-21 17:49:50 742 1

原创 认识 AIGC

AIGC(AI-Generated Content,人工智能生成内容)是指利用人工智能技术生成各种类型的内容,如文本、图像、音频、视频等。它广泛应用于内容创作、媒体、教育、娱乐、广告等领域。

2024-11-19 16:00:48 445

原创 了解,认识GRPC

RPC(Remote Procedure Call,远程过程调用)是一种计算机通信协议,允许程序调用远程服务器上的函数或方法,就像调用本地方法一样。RPC 屏蔽了网络通信的细节,使开发者无需关注底层的网络传输,只需关注函数调用本身。gRPC 是 Google 开发的一种高性能、开源的远程过程调用(Remote Procedure Call, RPC)框架。它基于 HTTP/2 协议,使用 Protocol Buffers(简称 Protobuf)作为接口描述语言和序列化协议。

2024-11-19 15:59:54 963

原创 gcc/g++ 使用技巧

MakeFile:记录一个项目编译流程及规则,找到makefile所在文件夹,命令行输入make,即可编译。警告变量名遮蔽问题(如局部变量遮蔽全局变量)。只运行预处理,不进行编译,输出预处理结果。以helloworld为例,解释调试命令。指定输出文件名(可执行文件或目标文件)。将所有警告视为错误(强制修复警告)。只编译源代码为目标文件(不链接)。生成汇编代码文件(.s)。启用大部分常见警告。

2024-11-18 12:54:22 811

原创 vim 使用技巧

vim常用三种模式包括正常模式,插入模式,命令模式。

2024-11-17 17:30:45 331 1

转载 docker 基本使用

在学习Docker的指令时,其实最好的⽅式是成体系的学,这样最好不要⽤⼀些缩写,因为不成体系。但是,做的事情并不重要,我们就从这么简单的事情开始起步。先看⼀个最简单的情形,我们有⼀个 image ,我们想从这个 image 启动出来⼀个container。因此,当我们运⾏容器后,我们会看到和直接在终端运⾏ top 没有区别的输出,也就是动态展示当前资源占⽤。但是,我们很多时候⽤容器,肯定不是就做⼀个简单的计算或者输出,我们往往是部署要给应⽤。那么,我们在构建⼀个会⼀直运⾏的容器,进⼀步感受之间的区别。

2024-10-16 18:51:48 55 1

原创 git 常用命令

git diff 是一个非常强大的工具,能帮助你在提交代码之前或在代码回溯时检查具体改动。无论是工作区、暂存区还是提交之间的差异,git diff 都能以直观的方式展示细节。通过熟练掌握 git diff,你可以更好地控制代码质量和改动的准确性。

2024-10-16 14:44:46 2947 1

原创 从零开始的vscode配置及安装rust教程

一般没有下载visual studio IDE,是没有生成工具的。需要单独安装,且需要(3~4)G空间。终端会自动进入安装状态,提示你是否安装,选用默认安装(直接Enter)即可。运行rustup-init.exe, 回车等待安装完成即可。3.检测rust是否安装成功,安装成功会显示类似如下信息,到这里, windos的rust配置环境也算是大功告成了。打开cmd命令行,使用以下命令检测rust是否安装成功。到这里, mac的rust配置环境就算是大功告成了。Rust 的编译工具依赖 C 语言的编译工具。

2024-04-21 15:41:22 14317

原创 Linux实验:输入一个数,累加,输出结果

Linux实验:shell编程输入一个数,累加,输出结果1. 思路2. 代码分析及解释3. 运行结果输入一个数,累加,输出结果让用户用键盘输入一个数字,程序可以由 1+2 +3+… 一直累加到用户输入的数为止,并输出算式和计算结果。1. 思路读取键盘输入的数字for循环实现累加,并判断是否小于输入数字,若小于,继续循环,否则跳出循环;显示结果2. 代码分析及解释源代码展示:#!/bin/bashsum=0#read -p 给出提示信息read -p "please input n

2021-04-19 18:36:48 10433 7

原创 Linux实验:输出成绩

Linux实验:shell编程输出成绩1. 思路2. 分析及代码解释3. 运行结果输出成绩编写shell脚本,可以用键盘输入一个学生成绩(百分制),并转换为对应的成绩标准显示,如:优(90-100);良(80-89);中(70-79);及格(60-69);不及格(0-59)。1. 思路读取键盘输入的成绩将成绩做比较,判断该grade属于优、良、中、及格、不及格,五个范围中那一个范围显示成绩和所归属的范围2. 分析及代码解释命令解析:注意空格返回0即为运行正确,符合判断数值测试

2021-04-19 18:23:54 3528 5

原创 Linux实验: 简单用户创建

Linux实验:shell编程简单用户创建思路分析及代码解释简单用户创建请批量创建一个班的用户,建立组名如class0605,然后添加属于这个组的用户。用户名为:学号+姓名。每成功创建一个用户,在屏幕上显示用户名。思路创建一个组,组名例如:class0605 这种,可用groupadd实现;创建两个变量,用于放置学号、姓名,可用numnumnumname实现;把创建的信息加入之前创建的组显示创建的信息退出程序分析及代码解释代码片解释:以下操作二选一即可,作用都是把用户信息添加到一个

2021-04-19 17:38:45 4012 6

原创 进程间通信

进程通信简介管道简介why:为什么无法通信? 每个进程都有自己的虚拟地址空间,访问的都是虚拟地址,进程间具有独立性,无法直接通信;进程通信的原理:系统为进程提供公共传输媒介实现公共访问进而实现通信,根据通信需求有不同方式: 管道、共享内存、消息队列、信号量管道1.1 定义把从一个进程连接到另一个进程的一个数据流通信原理:多个进程只要能够访问同一块内核中的缓冲区(管道)就能实现通信1.2 特性半双工通信<可选性单向通信>提供字节流传输服务:有序的,基于连接的,可靠的传

2021-04-05 02:03:49 864 2

原创 软链接、硬链接

文件系统简介分析图示文件的存储与读取1. 存储2. 读取软链接与硬链接文件1. 硬链接文件2. 软链接文件简介文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。分析图示文件系统:磁盘分区上的文件存储管理;磁盘上的每一个分区,都可能有自己的文件系统。因此,磁盘上有多少个分区,就有多少个文件系统;inode节点: 文件

2021-04-04 20:23:55 1024 5

原创 文件相关命令(Linux)

文件操作命令1. fopen2. fread3. fseek4.分析与实现1. fopenFILE* fopen(const char *path, const char* mode);path: 带路径的文件名;mode: 输出方式:“r”,“r+”,“w”,“w+”,“a”,“a+”,“b”r: 只读,若文件不存在则报错返回r+: 可读可写,若文件不存在则报错返回w: 只写,若文件不存在,创建一个新文件,写入文件;若文件存在,清空该文件原有内容,再写入;w+: 可读可写,若文

2021-04-02 23:59:54 504 2

原创 简单的minishell

简单的minishell分析与思路代码实现运行结果命令解析分析与思路获取键盘输入;解析输入信息(命令名称+运行参数)创建子进程在子进程中进行程序替换(替换失败退出子进程)父进程进行进程等待(避免子进程成为僵尸进程)代码实现#include<stdio.h>#include<unistd.h>#include<stdlib.h>#include<string.h>#include<sys/wait.h>#include&

2021-03-28 23:56:56 2035 7

原创 进程与程序

初识进程进程1. 特征2. 进程和程序的差异3. Linux中的进程4.控制进程的命令进程进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。1. 特征动态性: 进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。并发

2021-03-20 00:45:14 2372 8

原创 大写字母转换成小写字母

大写字母转换成小写字母题目:实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。示例:提示:这里可以添加要学的内容例如:1、 搭建 Java 开发环境2、 掌握 Java 基本语法3、 掌握条件语句4、 掌握循环语句学习时间:提示:这里可以添加计划学习的时间例如:1、 周一至周五晚上 7 点—晚上9点2、 周六上午 9 点-上午 11 点3、 周日下午 3 点-下午 6 点学习产出:提示:这

2021-03-07 18:21:19 5516

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除