- 博客(18)
- 收藏
- 关注
原创 线性代数——第一章 行列式
由二行二列四元素所成的算式,记作;例如:;.1. 两项相加 2. 主为正号,副为负号3. : 一般,为行标,为列标,为第元4. 不同行不同列相乘5. 习惯:先写上行,再写下行此类亦可: , 消 ,则可得 若 ,则 同理,消 得 , 规定 : 为系数行列式且 ,,则 , 此为克莱姆法则例1: 其有且仅有一个解注意:重点观查是否为(行列成比例时,即 ;例2: ,知,可易知无解;(两直线平行)例3:,可得有无数解。(两直线重合),令 , 则在直角坐标系中,有则 若,则如图三行三列9个元
2024-06-29 17:37:21 1349
原创 C++学习__13—二叉树
对有 n 个结点的二叉搜索树,若每个元素查找的概率相等,则二叉搜索树平均查找长度是结点在二叉搜索树的深度的函数,即结点越深,则比较次数越多。通过英文可以快速找到与其对应的中文,英文单词与其对应的中文 < word, chinese > 就构成一种键值对;< 单词,中文含义 > 为键值对构造二叉搜索树,注意:二叉搜索树需要比较,键值对比较时只比较。在二叉搜索树中检索该单词是否存在,存在则拼写正确,不存在则拼写错误。,统计成功后,给定单词就可快速找到其出现的次数,该种方式在现实生活中非常常见:比如。
2024-06-25 14:38:35 665
原创 C++学习__13—多态
需要声明的,本节课件中的代码及解释都是在 vs2022 下的 x86 程序中,涉及的指针都是 4bytes。如果要其他平台下,部分代码需要改动。比如:如果是 x64 程序,则需要考虑指针是8bytes 问题等等多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如 Student 继承了Person。Person 对象买票全价,Student 对象买票半价。那么在继承中要1. 必须通过基类的指针或者引用调用虚函数。
2024-06-07 21:48:08 744
原创 C++学习__12—继承
继承( inheritance ) 机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。public:private:// 继承后父类的Person的成员(成员函数+成员变量)都会变成子类的一部分。这里体现出了student和// Teacher复用了Person的成员。
2024-06-06 23:19:19 556
原创 C++学习__11—模板进阶
一个程序(项目)由若干个源文件共同实现,而每个源文件单独编译生成目标文件,最后将所有目标文件链接起来形成单一的可执行文件的过程称为分离编译模式。【优点】1. 模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库 (STL) 因此而产生2. 增强了代码的灵活性【缺陷】1. 模板会导致代码膨胀问题,也会导致编译时间变长2. 出现模板编译错误时,错误信息非常凌乱,不易定位错误。
2024-06-01 20:20:15 1706
原创 C++学习__10—stack 和 quue
stack 的文档介绍翻译:1. stack 是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。2. stack 是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。3. stack 的底层容器可以是任何标准的容器类模板或者一些其他特定的容器类,这些容器类应该支持以下操作:empty:判空操作。
2024-05-29 22:09:43 892
原创 C++学习__09—List
list 的文档介绍1. list 是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。2. list 的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。3. list 与 forward_list 非常相似:最主要的不同在于 forward_list 是单链表,只能朝前迭代,已让其更简单高效。
2024-05-23 18:34:19 891 1
原创 C++学习__08—Vector
erase 删除 pos 位置元素后,pos 位置之后的元素会往前搬移,没有导致底层空间的改变,理论上讲迭代器不应该会失效,但是: 如果 pos 刚好是最后一个元素,删完之后 pos 刚好是 end 的位置,而 end 位置是没有元素的,那么 pos 就失效了。其做法是,分配一个新的数组,然后将全部元素移到这个数组。2.如果拷贝的是自定义类型的元素,memcpy 即高效又不会出错,但如果拷贝的是自定义类型元素,并且自定义类型元素中涉及到资源管理时,就会出错,因为 memcpy 的拷贝实际是浅拷贝。
2024-05-20 20:03:29 754 1
原创 C++学习__06—模版初阶
class 类模版名// 类内成员定义// 动态顺序表// 注意:Vector不是具体的类,是编译器根据被实例化的类型生成具体类的模具public:,_size(0){ }// 使用析构函数演示: 在类中声明,在类外定义。~Vector();// 注意:类模板中函数放在类进行定义时,需要加模板参数列表。
2024-04-23 17:00:56 1637
原创 C++学习__05—C/C++内存管理
注意: 在申请自定义类型的空间时,new 会调用构造函数,delete 会调用析构函数,而 malloc 与free 不会;并且 malloc / free 为函数,而 new / delete 为操作符。为什么C语言中已经有 malloc / free ,C++也可以用,但是还需要 new / delete 呢?1、针对内置类型用 new 还是 malloc 都是一样的2、针对自定义类型, new 还要调用构造函数完成初始化,delete 还要调用析构函数完成清理(更规范标准)
2024-04-21 17:13:29 830 1
原创 C++学习__04—类与对象(下篇)
1. 再谈构造函数2.C++11 的成员初始化新玩法。3. 友元4. static成员5. 内部类6. 再次理解封装。
2024-04-15 18:06:46 536 1
原创 C++学习__03—类与对象(中篇)
1. 类的6个默认成员函数2. 构造函数3. 析构函数4. 拷贝构造函数5. 赋值操作符重载6. 默认拷贝构造与赋值运算符重载的问题7. const成员函数8. 取地址及const取地址操作符重载。
2024-04-09 18:02:33 809
原创 C++学习__02—类与对象(上篇)
C++中通过引入this指针解决该问题,即: C++编译器给每个“非静态的成员函数”增加了一个隐藏的指针参数,让该指针指向当前对象(函数运行时调用该函数的对象),在函数体中所有成员变量的操作,都是通过该指针去访问。但在C++中,只有三个对象,用户,外卖小哥,商家,就这三个对象来编写代码,如用户,需要有 姓名,地址,电话...,他与商家进行交互,即商家获取用户需求...,既而商家与外卖小哥进行交互...,外卖小哥这个对象又需要实时定位,确定所需时间...) (可能我说的会更迷,鉴定观看)(声明和定义的区别?
2024-04-02 19:21:01 1634 3
原创 C++学习__01—入门
1.实际我们的项目通常是由多个头文件和多个源文件构成,而通过我们C语言阶段学习的编译链接,我们可以知道,[ 当前a.cpp中调用了b.cpp中定义的Add函数时 ] ,编译后链接前,a.o的目标文件中没有Add的函数地址,因为Add是在b.cpp中定义的,所以Add的地址在b.o中。(上面这个的原因是当第一次执行 Add 这个函数时,出来了个“ c ”,这个“ c ”还连着函数里面,当执行完后,函数空间若是被清除,“ c ”的值就会成随机数,而此代码再执行了一句Add,让“ c "变为了7,故。
2024-03-28 21:57:52 752
原创 # [NOIP2015 普及组] 扫雷游戏
在 $n$ 行 $m$ 列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。接下来 $n$ 行,每行 $m$ 个字符,描述了雷区中的地雷分布情况。用 $\texttt{*}$ 表示地雷格,用周围的地雷个数表示非地雷格。if((a==i&&b==j)||(arr[a][b]=='*'))//本身是雷及周围是雷的就跳走。现在给出 $n$ 行 $m$ 列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。对于 $100\%$的数据,$1≤n≤100, 1≤m≤100$。
2023-11-30 15:57:36 22
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人