- 博客(79)
- 收藏
- 关注
原创 【C++】模板进阶---cpp模板的深入探索
模板参数分类类型形参与非类型形参。类型形参,即出现在模板参数列表中,跟在class或者typename之类的参数类型名称。非类型形参,就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成常量来使用。
2024-09-26 13:48:42 905 42
原创 【C++】深度解析:用 C++ 模拟实现 priority_queue类,探索其底层实现细节(仿函数、容器适配器)
优先级队列默认使用vector作为其底层存储数据的容器,在vector上又使用了堆算法将vector中元素构造成 堆 的结构,因此priority_queue就是堆,所有需要用到堆的位置,都可以考虑使用priority_queue。
2024-08-22 14:20:18 922 43
原创 【Linux】Linux进程控制——进程创建、进程终止及进程等待详解
在Linux中fork函数时非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。#includepid_t fork(void);返回值:自进程中返回0,父进程返回子进程id,出错返回-1进程调用fork,当控制转移到内核中的fork代码后,内核做:分配新的内存块和内核数据结构给子进程将父进程部分数据结构内容拷贝至子进程添加子进程到系统进程列表当中fork返回,开始调度器调度
2024-08-12 15:12:16 1075 47
原创 【MySQL】MySQL常见数据类型
数值类型 bit(m) 位类型。m指定位数,默认值为1,范围1-64tinyint [unsigned] 带符号的范围-128~127,无符号范围0~255.默认有符号bool 使用0和1表示真假smallint [unsigned] 带符号是-2^15~2^15-1,无符号是2^16-1int [unsigned] 带符号是-2^31~2^31-1,无符号是2^32-1bigint [unsigned] 带符号是-2^63~2^63-1,无符号是2^64-1float[(m,d
2024-08-08 13:20:22 1114 40
原创 【C++】深入探索:从零开始模拟实现C++中的Vector容器
在C++中,vector是一个非常常用的容器,它提供了一种动态数组的实现方式,允许我们在运行时动态地增加或减少元素的数量。vector的内部实现主要依赖于动态分配的内存和连续存储的元素。
2024-07-29 18:49:10 1057 54
原创 【C++】深度解析:用 C++ 模拟实现 list 类,探索其底层实现细节
list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。list与forward_list非常相似:最主要的不同在于forward_list是单链表,只能朝前迭代,已让其更简单高效。与其他的序列式容器相比(array,vector,deque),list通常在任意位置进行插入、移除元素的执行效率更好。与其他序列式容器相比,list和forwar
2024-07-25 12:26:20 1449 45
原创 【C++】深入探索vector,让你一次性学懂!
vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素 进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自 动处理。
2024-07-20 23:31:53 1088 50
原创 【Linux】Linux进程揭秘:从理论到实践的深度探索之旅
进程,简而言之,是程序在计算机中的一次执行实例,是系统资源(如CPU时间、内存)的分配实体。Linux中,进程以task_struct(进程控制块,PCB)的化身形式存在内存中,存储着进程的全息:标识符、状态、优先级、程序计数器、内存指针、I/O状态、记账信息等。每一个进程,皆是task_struct链表的一员,是Linux内核管理进程的基石。
2024-07-18 18:09:56 2259 54
原创 探索JavaScript函数---基础篇
一般来说,一个函数是可以通过外部代码调用的一个“子程序”(或在递归的情况下由内部函数调用)。像程序本身一样,一个函数由称为函数体的一系列语句组成。值可以传递给一个函数,函数将返回一个值。在 JavaScript 中,函数是头等 (first-class)对象,因为它们可以像任何其他对象一样具有属性和方法,可以像其他数据类型一样被赋值给变量、作为参数传递给其他函数,甚至作为其他函数的返回值。它们与其他对象的区别在于函数可以被调用。简而言之,它们是Function对象。
2024-06-01 14:31:57 1120 51
原创 探索计算机基石:深入理解冯·诺依曼结构
在信息技术日新月异的今天,计算机已成为我们生活、工作不可或缺的一部分。但当我们享受着计算机带来的种种便利时,是否曾思考过其背后的工作原理?这一切,都离不开一个奠定现代计算机基础的理论框架——冯·诺依曼结构。
2024-05-20 13:29:51 1402 57
原创 整数和浮点数在内存中的存储详解(原码、反码、补码,大小端字节序,浮点数的存取)
整数的二进制表示方法有三种,即原码、反码、补码。三种表示方法均有符号位和数值位两部分,数值位的最高位被当作符号位,其中0表示“正”,1表示“负”,剩余的位则为数值位。对于正整数,它的原码、反码、补码都相同。
2024-05-20 13:29:15 1017 26
原创 AIGC:一个值得探索的新蓝海?
大型预训练模型等人工智能的技术方法,通过已有数据的学习和识别,以适当的泛化能力生成相关内容的技术。:中国AIGC应用市场正在崛起,互联网大厂凭借其广泛的业务布局和战略投资,在各赛道展开竞争,初创企业也纷纷入局,探索特定领域或细分市场的创新应用,力求在商业化道路上脱颖而出。:随着AIGC内容的广泛应用,如何确保生成内容的准确性和合法性,避免误导信息和版权争议,成为监管关注的重点,企业需密切关注相关法律法规动态,确保业务合规。此外,随着技术的成熟和应用的广泛,AIGC行业的市场规模预计将持续增长。
2024-05-16 19:08:16 1564 23
原创 【C++】深度解析:用 C++ 模拟实现 string 类,探索其底层实现细节
1. 字符串是表示字符序列的类2. 标准的字符串类提供了对此类对象的支持,其接口类似于标准字符容器的接口,但添加了专门用于操作单字节字符字符串的设计特性。3. string类是使用char(即作为它的字符类型,使用它的默认char_traits和分配器类型(关于模板的更多信息,请参阅basic_string)。4. string类是basic_string模板类的一个实例,它使用char来实例化basic_string模板类,并用char_traits和allocator作为basic_string的
2024-05-14 10:37:34 1209 48
原创 JavaScript 对象入门:基础用法全解析
对象是 JavaScript 数据类型的一种,数据类型也包括数值类型、字符串类型、布尔类型、undefined。对象数据类型可以被理解成是一种数据集合。它由属性和方法两部分构成。
2024-05-14 10:37:09 1179 32
原创 深入探索GDB:Linux下强大的调试神器
GDB,全称GNU Debugger,是一款开源、跨平台的源码级调试工具,尤其在Linux生态系统中占据着举足轻重的地位。GDB支持包括C、C++、Fortran、Ada、Objective-C、Go、D等多种编程语言,能够与GCC、Clang、LLVM等一系列主流编译器无缝集成。无论是针对桌面应用程序、服务器端服务,还是嵌入式系统,GDB都能以其强大的功能和灵活的交互方式,为开发者提供无与伦比的调试体验。
2024-04-23 21:17:56 2334 57
原创 JavaScript基础:js介绍、变量、数据类型以及类型转换
JavaScript 程序不能独立运行,它需要被嵌入 HTML 中,然后浏览器才能执行 JavaScript 代码。通过 script 标签( js代码)将 JavaScript 代码引入到 HTML 中
2024-04-16 20:18:03 959 40
原创 【算法】动态规划练习(一)
泰波那契序列Tn定义如下:T0= 0, T1= 1, T2= 1, 且在 n >= 0的条件下 Tn+3= Tn+ Tn+1+ Tn+2给你整数n,请返回第 n 个泰波那契数Tn的值。
2024-04-07 21:27:34 1466 20
原创 初识STL(标准模板库)
STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且 是一个包罗数据结构与算法的软件框架。
2024-03-19 20:39:25 1304 37
原创 C语言:指针(一)
CPU(中央处理器)在处理数据的时候,需要的数据是在内存中读取的,处理后的数据也会放回内存中,那么这些内存空间是如何进行高效管理的呢?事实上,内存被划分为一个个的内存单元(对应这一个寝室),每个单元的大小取一个字节。
2024-03-02 17:39:29 1054 30
原创 C/C++内存管理及内存泄漏详解
栈区(stack):在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。栈区主要存放运行函数而分配的局部变量、函数参数、返回数据、返回地址等。
2024-03-02 17:28:41 1195 2
原创 【C语言】文件及文件操作详解(fseek,ftell,rwind)
如果没有文件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运行程序,是看不到上次程序的数据的,如果要将数据进行持久化的保存,我们可以使用文件。
2024-03-02 14:53:59 1244 4
原创 【CSS】CSS简介,CSS基础选择器详解
CSS 是层叠样式表 ( Cascading Style Sheets ) 的简称,也称之为 CSS 样式表或级联样式表。CSS 也是一种标记语言CSS 主要用于设置 HTML 页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局和外观显示样式。CSS 让我们的网页更加丰富多彩,布局更加灵活自如。简单理解:CSS 可以美化 HTML , 让 HTML 更漂亮, 让页面布局更简单。
2024-03-02 14:01:34 872 14
原创 【C++】类和对象---友元,内部类,匿名对象详解
友元函数可以直接访问类的私有成员,它是定义在类外部的普通函数,不属于任何类,但需要在类的内部声明,声明时需要加friend关键字。
2024-02-23 19:57:43 887 8
原创 Linux编译器---gcc/g++使用详解
GCC(GNU Compiler Collection)是一个由GNU项目开发的编译器套件,它包括了用于多种编程语言的编译器,如C、C++、Fortran、Ada、Go等。GCC是一个开源的工具集,可在多个平台上运行,支持多种操作系统和架构。它是许多操作系统的默认编译器,也是许多开源项目的首选编译工具。
2024-02-23 13:01:53 1628 17
原创 C语言翻译环境:预编译+编译+汇编+链接详解
在ANSI C的任何⼀种实现中,存在两个不同的环境。第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。第2种是运行环境,它用于实际执行代码。
2024-02-22 18:46:46 1511 22
原创 【C++】类和对象---const成员,取地址及const取地址操作符重载,static成员
将const修饰的“成员函数”称之为const成员函数,const修饰类成员函数,实际修饰该成员函数隐含的this指针,表明在该成员函数中不能对类的任何成员进行修改。
2024-02-21 22:09:00 1070 10
原创 Linux编辑器——Vim详解
vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、windows。
2024-02-20 22:27:15 2896 35
原创 【C++】拷贝构造函数和赋值运算符重载详解
拷贝构造函数:只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存在的类类型对象创建新对象时由编译器自动调用。
2024-02-03 21:35:09 1821 27
原创 【C++】引用详解
引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。
2024-02-02 22:43:08 1167 22
原创 【C语言】探索数据结构:单链表和双链表
链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的
2024-01-31 13:07:02 1024 15
原创 深入了解Yum:Linux系统的软件包管理利器
软件包和软件包管理器, 就好比 "App" 和 "应用商店" 这样的关系.yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat,Centos等发行版上.
2024-01-30 20:09:34 778 14
原创 【C++】输入&输出、缺省参数、函数重载
为函数的参数指定一个缺省值(默认值)。在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参。
2024-01-28 16:16:01 1627 42
原创 【C++】命名空间详解
在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。// C语言没办法解决类似这样的命名冲突问题,所以C++提出了namespace来解决int main()return 0;// 编译后后报错:error C2365: “rand”: 重定义;以前的定义是“函数”C++ 要求所有标识符都是无歧义的。
2024-01-24 16:38:21 1009 38
原创 HTML标签(二)
表格主要用于显示、展示数据,因为它可以让数据显示的非常的规整,可读性非常好。特别是后台展示数据的时候,能够熟练运用表格就显得很重要。一个清爽简约的表格能够把繁杂的数据表现得很有条理
2024-01-24 14:45:38 1052 20
原创 【Leetcode】接雨水(双指针、单调栈)
题目描述给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。
2024-01-21 17:37:30 947 34
原创 归并排序详解
分解为多个小区间可以看到这种结构很像一棵完全二叉树,分阶段可以理解为就是递归拆分子序列的过程,递归深度为log2n。合并相邻有序子序列归并的缺点在于需要O(N)的空间复杂度,归并排序的思考更多的是解决在磁盘中的外排序问题。时间复杂度:O(N*logN)空间复杂度:O(N)稳定性:稳定。
2024-01-19 15:08:22 561 51
原创 ChatGPT 和文心一言,各有优劣
近年来,随着人工智能技术的不断进步,AI助手已成为人机交互的重要载体。其中代表性的两个AI助手系统分别是OpenAI推出的ChatGPT,以及腾讯研发的文心一言。这两个助手在知识覆盖、语言表达能力、应用场景等多个方面都有不同程度的优势。本文将从知识库、语言能力、对话能力、生成内容风格四个维度对比分析这两个助手的优势。在语言表达、知识应用等日常交流场景,文心一言效果更好;而ChatGPT在对话交互能力以及知识覆盖面更广更全面,适用于问题解答等多样场景。两者各有优势,在选择助手时应考虑实际需求,以发挥各自长处。
2024-01-19 14:43:27 728 4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人