自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 C++ 模版初阶

泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。

2024-12-01 17:53:43 446

原创 C/C++ 内存管理

globalVal 是全局变量,在静态区 CstaticGlobalVar 是全局的静态变量,在静态区 CstaticVar 是局部的静态变量,在静态区 ClocalVar 是局部变量,在栈,具体来说是在栈帧里面 Anum1 是一个局部数组,在栈 Achar2 是一个局部数组,在栈 A,它里面的数据abcd,是从常量区里面拷贝来的,‘abcd’都是在栈,所以char2 是‘a’,在栈 Apchar3 是一个指针,在栈 A,它指向常量区里面的内容‘abcd’,所以。

2024-12-01 16:30:02 993

原创 C++ 类和对象(下)

声明为static的类成员称为类的静态成员,用static修饰的成员变量,称之为静态成员变量;用static修饰的成员函数,称之为静态成员函数。静态成员变量一定要在类外进行初始化。

2024-12-01 09:20:19 879

原创 C++ 类和对象(中)

注意:C++11 中针对内置类型成员不初始化的缺陷,又打了补丁,即:内置类型成员变量在类中声明时可以给默认值。

2024-11-27 17:32:58 848

原创 C++ 类和对象(上)

声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。(即2. 可以将函数的定义放在 .h 文件中)类声明放在.h文件中,成员函数定义放在.cpp文件中,注意:成员函数名前需要加类名::C++编译器给每个“非静态的成员函数“增加了一个隐藏的指针参数,让该指针指向当前对象(函数运行时调用该函数的对象),在函数体中所有“成员变量”的操作,都是通过该指针去访问。只不过所有的操作对用户是透明的,即用户不需要来传递,编译器自动完成。

2024-11-20 20:04:19 972

原创 C++ 入门

定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。// 1. 正常的命名空间定义// 命名空间中可以定义变量/函数/类型//注意:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。

2024-11-20 14:37:03 961

原创 C语言--预处理详解

define 机制包括了⼀个规定,允许把参数替换到文本中,这种实现通常称为宏(macro)或定义宏(define macro)这个定义的宏也是直接替换的其中的 parament-list 是⼀个由逗号隔开的符号表,它们可能出现在stuff中。注意:参数列表的左括号必须与name紧邻,如果两者之间有任何空白存在,参数列表就会被解释为stuff的⼀部分用于对数值表达式进行求值的宏定义都应该加上括号,避免在使用宏时由于参数中的操作符或宏之外邻近操作符之间不可预料的相互作用。

2024-11-10 16:02:56 831

原创 C语言--编译和链接

2.2.1 词法分析2.2.2 语法分析2.2.3 语义分析2.3 汇编2.4 链接总结

2024-11-09 15:28:26 583

原创 C语言--文件操作

(从文件功能的角度来分类的)

2024-11-09 10:29:28 600

原创 C语言--动态内存管理

C99 中,结构体中的最后⼀个元素允许是未知大小的数组这就叫做柔性数组成员1. 在结构体中2. 是结构体的最后一个成员3. 大小未知的数组 (int arr[0] or int arr[])1. 栈区(stack):在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时,这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。栈区主要存放运行函数而分配的局部变量、函数参数、返回数据、返回地址等 《函数栈帧的创建和销毁》

2024-11-07 20:13:03 689

原创 C语言--自定义类型:联合和枚举

•像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型•编译器•联合体的特点是。•给联合体其中⼀个成员赋值,其他成员的值也跟着变化。

2024-11-05 21:54:35 315

原创 C语言--自定义类型:结构体

红线是s1所占用的内存开头,每一格代表一个字节,第一个字节相较于起始位置的偏移量是0,第二个字节偏移量是1,以此类推。5.嵌套结构体时: 嵌套结构体的对齐数是自身成员的最大对齐数,所占字节大小就是嵌套结构体的大小。匿名的结构体类型,如果没有对结构体类型重命名的话,基本上只能使用⼀次。4.结构体的大小是结构体成员中(嵌套结构体也算)最大对齐数的整数倍。编译器会把上面的两个声明当成完全不同的两个类型,所以是非法的。3.其他的结构体成员放到偏移量是自身对齐数整数倍的地方。在声明结构的时候,可以不完全的声明。

2024-11-03 16:53:51 424

原创 C语言--数据在内存中的存储

(地址从低到高,正着存储)是指数据的低位字节内容保存在内存的高地址处,而数据的高位字节内容,保存在内存的低地址处。(地址从低到高,倒着存储)是指数据的低位字节内容保存在内存的低地址处,而数据的高位字节内容,保存在内存的高地址处假设0x1122334444是低位字节11是高位字节。

2024-11-03 10:23:00 857

原创 C语言--内存函数

•函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。•和memcpy的差别就是memmove函数处理的源内存块和目标内存块是可以重叠的。• 如果source和destination有任何的重叠,复制的结果都是未定义的。memset是用来设置内存的,将内存中的值以字节为单位设置成想要的内容。• 如果源空间和目标空间出现重叠,就得使用memmove函数处理。•比较从ptr1和ptr2指针指向的位置开始,向后的num个字节。

2024-11-02 11:09:05 293

原创 C语言--字符函数和字符串函数

在不同的系统和C语言标准库的实现中都规定了⼀些错误码,⼀般是放在 errno.h 这个头文件中,C语言程序启动的时候就会使用⼀个全局的变量errno来记录程序的当前错误码,只不过程序启动的时候errno是0,表示没有错误,当我们在使用标准库中的函数的时候发生了某种错误,就会将对应的错误码,存放在errno中,而⼀个错误码的数字是整数很难理解是什么意思,所以每⼀个错误码都是有对应的错误信息的。• 每一次,strtok函数找到str中的标记,并将其用 \0 结尾,返回⼀个指向这个标记的指针。

2024-11-01 21:58:18 662 1

原创 C语言--深入理解指针(4)

要使用qsort()函数,就要先准备好它需要的四个参数,即数组的首地址,数组的长度,数组每个元素的长度,还有比较函数的地址(即函数名)。

2024-09-13 19:51:35 372

原创 C语言--深入理解指针(3)

代码 const char* pstr = “hello bit.”本质是把字符串 hello bit. 首字符的地址放到了pstr中。常量字符串hello bit. 存放在内存的只读区域str1和str2是两个字符数组,存放字符串的首地址,二者地址不同,所以不一样*str3和*str4 因为是指针,指向常量字符串hello bit.,每个常量字符串在内存中只有一份,二者指向的地方一样,地址一样,所以二者相同。

2024-09-13 19:34:59 435

原创 C语言--深入理解指针(2)

*

2024-09-09 20:25:11 455

原创 C语言--深入理解指针(1)

内存空间被分成一个个的内存单元每个内存单元的大小是一个字节:内存单元的编号 == 地址 == 指针CPU访问内存中的某个字节空间,必须知道这个字节空间在内存的什么位置,⽽因为内存中字节很多,所以需要给内存进⾏编址(就如同宿舍很多,需要给宿舍编号⼀样)。计算机中的编址,并不是把每个字节的地址记录下来,⽽是通过硬件设计完成的。32位机器有32根地址总线每根线只有两态,表示0,1【电脉冲有⽆】,那么⼀根线,就能表示2种含义,2根线就能表示4种含义,依次类推。

2024-09-08 11:16:10 1170

原创 C语言操作符详解

二进制中每一位都有权重,从右向左分别是 2,2等每一位乘以权重再相加即可。

2024-09-07 10:33:45 778

原创 C语言printf与scanf输出格式

最小宽度和小数位数可以用* 传入。

2024-09-02 21:25:39 268

原创 C语言中scanf用法大全

scanf匹配特定字符的格式为:%[xxx],[ ]包围起来的是需要读取的字符集合。scanf() 允许把读取到的数据直接丢弃,不往变量中存放,abcd没有顺序要求,这四个字符什么顺序均可以被录入。具体方法就是在 % 后面加一个*同理可得%[0-9]等。

2024-09-02 21:00:35 580

原创 李宏毅———类神经网络训练不起来的解决方法

w2Hesssian的取法如果遇到saddle point 还可以看Hession Hession告诉我们更新参数的方向localminima 可能在更高维度上是saddle point事实上 实验中绝大多数甚至是全部都是 saddle pointminimum ratio =正的特征值/全部特征值 最高不到0.6。

2024-07-17 17:18:02 291

原创 李宏毅——第一节机器学习基本概念简介

从上图我们可以看到,网络层数在1-3之间时,随着层数增加,测试集损失值在逐渐下降。但是,到第4层的时候,测试集的损失值反而上升了。深度学习中的“深度”指的是多层的神经网络。了解了单层神经网络的基本原理之后,要想实现多层神经网络就很简单了,只需要将第i层的输出作为第i+1层的输入即可实现。过拟合:模型过于复杂,学到了很多噪声,导致训练集loss下降,但是验证集loss上升。[用蓝色的点点函数(sigmoid function)表示上面的蓝色函数]3.采用梯度下降法求解使得函数表达式的Loss最小的参数。

2024-07-16 11:22:10 329 1

空空如也

空空如也

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

TA关注的人

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