随笔分类 - 期末复习
摘要:一、概论 什么是算法? 算法是求解问题的一系列步骤,用来将输入数据转换成输出结果 算法设计应该满足以下目标(对使用算法的人来讲) 正确性:算法能正确地执行,能完成任务 可使用性:算法要能被方便地使用 可读性:算法应具有较好的可读性,易于理解 健壮性:要有异常处理,对不合理的数据进行检查,从而避免异常
阅读全文
摘要:7.2 图的存储结构 7.4 图的连通性问题 最小生成树 生成树条件: 全部顶点 部分边 无回路 最小生成树:权最小的生成树 点:prim 任取一个点,进入解集 对解集画圈,找与圈连接的最小边,将那个边另一侧的点放入解集 重复步骤2,直到所有点被圈住 边:krukal 将边按权值排序,列出权值表 从
阅读全文
摘要:人眼中的图像 马赫带效应:感知亮度并不是简单的灰度函数 上冲,下冲:感觉黑的更黑,灰的更白 同时对比效应:一个区域的感知亮度并不止取决于它的灰度,还取决于它周围物体的灰度。对比度 光学错视:人眼中充斥着不存在的信息。人眼错误地感知了物体的几何特点。 图像传输时间=要传送的位数/波特率 邻接 4邻接
阅读全文
摘要:无法被重载 类属关系运算符 . 成员指针运算符 .* 作用域分辨符 :: 三目运算符 ?: 只能通过成员函数重载 赋值运算符= 方括号[] 圆括号() 指向结构体成员运算符->
阅读全文
摘要:1、重载 以下条件要全部满足: 函数名相同 以下条件满足其1: 函数形参数目不同 函数形参类型不同 注意: 不看返回值 调用形式要不同 //下面两个函数不能重载 fun(int a,int b){} fun(int a,int b,int c=0){} //原因:调用fun(1,2)时,以上两个函数
阅读全文
摘要:只讨论个大概,不管细节不同优先级的运算符混在一起,就根据优先级算相同优先级的运算符混在一起,就看它们的结合性(这里不谈) 一定要记住:括号>基本计算>关系>逻辑>底层选手 1、运算符有哪些? 单目运算符 * ++自增,有前置和后置 --自减,有前置和后置 !逻辑非 +正号 -负号 双目运算符/三目运
阅读全文
摘要:1、数组 1.1 基本数组 数组声明int a[10]; 声明时方括号内是元素个数。下标从0开始。 第一个元素是a[0],最后一个元素是a[9] a[n]表示的是第n+1个元素 二维数组int b[3][4]; 数组可以为任何类型,但不能为void类型 数组名是一个指针常量 存储 数组元素在内存中是
阅读全文
摘要:1、基类与派生类 类的继承:面向对象的程序设计中提供了类的继承机制,允许程序员在保持原有类特性的基础上,进行更具体、更详细的定义 用途:代码的重用性(继承)和可扩充性(派生) 例:植物大战僵尸游戏中,可以将普通僵尸作为一个基类,设计其他僵尸(路障僵尸,铁门僵尸等) 类的继承:新类从已有类得到特性(新
阅读全文
摘要:虚函数是动态绑定的基础,必须是非静态的成员函数 1、一般虚函数 1.1 引例 程序 运行结果&解释 #include <iostream> using namespace std; class Base1 { public: void display() const;//这个不是虚函数 }; cla
阅读全文
摘要:1、多态性 1.1 什么是多态? 多态是指相同消息被不同对象接收后导致不同的行为,所谓消息是指对类成员函数的调用,不同的行为是指不同的实现,也就是调用了不同的函数。 消息在C++编程中指的是对类的成员函数的调用。 举例解释 使用运算符“+”可以实现对整数,浮点数,双精度浮点数的加法运算。“+”是消息
阅读全文
摘要:学习重点:容器类型内部的实现机制,顺便复习前面各章内容。容器类型的具体实现不需要特别关注(目前不需要会裸手写这么一个容器类型) 1、群体/线性群体 群体的概念 群体是指由多个数据元素组成的集合体。群体可以分为两个大类:线性群体和非线性群体 线性群体中的元素按位置排列有序,可以区分为第一个元素、第二个
阅读全文
摘要:1、例:求绝对值函数的模板 函数重载方便了函数的使用者,开发者还是要写两个函数 模板是用来生成函数的东西 编译器通过推导生成函数: 2、函数模板定义语法 从例题入手,别上来就扣语法 3、例9-1 函数模板的示例 该例子中,输出用的是cout<<,若想输入自己定义的类,则要对“<<”(插入运算符)进行
阅读全文
摘要:1、C++项目结构 C++程序的一般组织架构 类声明文件(.h文件) 类实现文件(.cpp文件) 类的使用文件(main()所在的.cpp文件) 用工程组合各文件 2、编译链接 编译链接过程 3、外部变量/外部函数/命名空间 外部变量 除了在定义它的源文件中可以使用外,还能被其他文件使用 文件作用域
阅读全文