- 博客(33)
- 收藏
- 关注
原创 GAMES101
如果只是对每个三角形都求一次交点,那速度很慢,并且每一根光纤的每一次弹射都需要重新遍历场景中的所有三角形,很难做到,因此提出包围盒的概念。使用光线追踪的原因:光栅化不能很好的解决全局问题(即物体与物体相互作用相互影响的问题,全局光照),也不能解决软阴影。光线与横平竖直的面求交好求。只要当光线的某一分量等于某一个特定值的时候,就说明光线和这个轴对齐的平面有交点了。均匀网格划分:对网格的划分数量有要求,太多或者太少效果都不好,并且不适合物体在空间中分布不均匀的情况。利用AABB加速结构提出的基于物体划分方式。
2023-10-09 16:55:16
165
原创 Leetcode刷题心得
目录1. 动态规划1.1 背包问题1.1 01背包问题805. 均值分割1.2 完全背包问题377. 组合总和IV518. 零钱兑换Ⅱ1.2 一维DP1.3 二维DP97. 交错字符串72. 编辑距离115. 不同子序列1.3. 三维DP87. 扰乱字符串1.4 线性DP10. 正则表达式匹配44. 通配符匹配300. 最长递增子序列(注意贪心的做法)354. 俄罗斯套娃信封问题714. 买卖股票的最佳时机含手续费887. 鸡蛋掉落940. 不同的子序列1092. 最短公共超序列1463. 摘樱桃Ⅰ1696
2023-09-15 23:39:15
470
原创 C++设计模式
目录1. 设计模式简介2. 面向对象的设计原则2.1 重新认识面向对象2.2 面向对象设计原则2.2.1 依赖倒置原则(DIP)2.2.2 开放封闭原则(OCP)2.2.3 单一职责原则(SRP)2.2.4 Liskov替换原则(LSP)2.2.5 接口隔离原则(ISP)2.2.6 优先使用对象组合,而不是类继承2.2.7 封装变化点2.2.8 针对接口编程,而不是针对实现变成2.3 面向接口设计2.4 将设计原则提升为设计经验3. 模式方法 Template Method3.1 GOF-23 模式分类3.
2021-11-30 19:50:12
816
原创 Linux开发
目录0. Linux常用命令1. 开发环境的搭建2. GCC编译器2.1 编译过程2.2 g++重要编译参数2.3 实战2.3.1 直接编译2.3.2 生成库文件并编译0. Linux常用命令gedit filenametime指令可以查看程序执行时间time ./test查看编译使用手册man gcc 1. 开发环境的搭建// 更新软件来源sudo apt update// 通过以下命令安装编译器和调试器sudo apt install build-essential gdb
2021-11-26 21:29:38
1423
原创 Pet整理
目录1. UDP通信1.1 UdpClient1.2 UdpServer2. 文件读写2.1 UFileReadSave.h2.2 UFileReadSave.cpp1. UDP通信1.1 UdpClient#include <WinSock2.h>#include <Ws2tcpip.h>#include <stdio.h>#include <windows.h>void udpClient(){ //加载套接字库(必须) WORD wV
2021-11-25 11:20:03
570
原创 数据库笔记整理
目录1. 数据库的相关概念1.1 DBMS1.2 DB1.3 SQL2. 数据库存储数据的特点3. 初始MySQL3.1 MySQL产品的介绍3.2 MySQL服务的启动和停止3.3 MySQL服务的登录和退出3.4 MySQL的常见命令和语法规范3.5 SQL的语言分类4. DQL语言的学习4.1 基础查询4.2 条件查询4.3 排序查询4.4 常见函数4.4.1 单行函数4.5 分组函数4.6 分组查询4.7 连接查询4.8 子查询4.9 分页查询4.10 union联合查询5. DML语言的学习5.1
2021-10-31 19:50:06
1142
原创 Qt学习笔记
目录对象树示例代码mypushbutton.h 文件mypushbutton.cpp 文件mywidget.h 文件mywidget.cpp 文件main 文件信号和槽自定义信号和槽自定义信号自定义槽函数自定义信号和槽出现重载lambda表达式示例代码widget.h 文件widget.cpp 文件teacher.h 文件teacher.cpp 文件student.h 文件student.cpp 文件main 文件第一次作业widget.h 文件widget.cpp 文件main 文件QMAINWINDOW
2021-10-15 18:55:54
2332
原创 常用的C++面向对象编程模板
目录1. 一些基础的规则2. 日期类2.1 日期类头文件2.2 日期类执行文件3. 书籍销售类3.1 书籍销售类头文件3.2 书籍销售类执行文件4. 指针类4.1 指针类1头文件4.2 指针类2头文件5. string类5.1 string类1头文件5.2 string类1执行文件5.3 string类2头文件5.4 string类2执行文件6. Account类6.1 Account类执行文件 —— 拥有静态成员7. StrVec类7.1 StrVec类头文件7.2 StrVec类执行文件8. Quote
2021-09-10 20:21:12
450
转载 C++ primer第十六章—模板与泛型编程
目录16.1 定义模板16.1.1 函数模板16.1.2 类模板16.1.3 模板参数16.1.4 成员模板16.1.5 控制实例化16.1.6 效率与灵活性16.2 模板实参推断16.2.1 类型转换与模板类型参数16.2.2 函数模板显示实参16.2.3 尾置返回类型与类型转换16.2.4 函数指针和实参推断16.2.5 模板实参推断和引用16.2.6 理解std::move16.2.7 转发16.3 重载与模板16.4 可变参数模板16.4.1 编写可变参数函数模板16.4.2 包扩展16.4.3 转
2021-05-17 14:45:29
589
原创 C++ primer第十五章—面向对象程序设计
目录15.1 OOP:概述15.2 定义基类和派生类15.3 虚函数15.4 抽象基类15.5 访问控制与继承15.6 继承中的类作用域15.7 构造函数与拷贝控制15.8 容器与继承15.9 文本查询程序再探15.1 OOP:概述面向对象程序设计三个基本概念:数据抽象、继承和动态绑定15.2 定义基类和派生类15.3 虚函数15.4 抽象基类15.5 访问控制与继承15.6 继承中的类作用域15.7 构造函数与拷贝控制15.8 容器与继承15.9 文本查询程序再探...
2021-05-15 20:15:37
219
原创 C++ primer第十四章—重载运算与类型转换
目录14.1 基本概念14.2 输入和输出运算符14.3 算术和关系运算符14.4 赋值运算符14.5 下标运算符14.6 递增和递减运算符14.7 成员访问运算符14.8 函数调用运算符14.9 重载、类型转换与运算符14.1 基本概念重载的运算符是具有特殊名字的函数,他们的名字由关键字operator和后面要定义的运算符号共同组成。和其他函数一样,也有返回类型,参数列表和函数体。重载运算符函数的参数数量与该运算符作用的运算对象一样多。一元运算符有一个参数,对于二元运算符来说,左侧运算对象传递给第
2021-05-12 17:09:36
578
转载 C++ primer第十三章—拷贝控制
目录13.1 拷贝、赋值与销毁13.1.1 拷贝构造函数13.1.2 拷贝赋值运算符13.1.3 析构函数13.1.4 三/五法则13.1.5 使用=default13.1.6 阻止拷贝13.2 拷贝控制和资源管理13.2.1 行为像值的类13.2.2 定义行为像指针的类13.3 交换操作13.4 拷贝控制示例13.5 动态内存管理类13.6 对象移动13.6.1 右值引用13.6.2 移动构造函数和移动赋值运算符13.6.3 右值引用和成员函数13.1 拷贝、赋值与销毁对初学c++的程序员来说,必须
2021-05-09 19:10:01
435
原创 C++ primer第十二章—动态内存
目录12.1 动态内存与智能指针12.1.1 shard_ptr类1. make_shared函数12.1.2 直接管理内存12.1.3 shard_ptr和new结合使用12.1.4 智能指针和异常12.1.5 unique_ptr12.1.6 weak_ptr12.2 动态数组12.2.1 new和数组12.2.2 allocator类12.3 使用标准库:文本查询程序12.3.1 文本查询程序设计12.3.2 文本查询程序类的定义12.1 动态内存与智能指针静态内存:保存局部static对象、类
2021-05-09 11:01:52
454
原创 C++ primer第十一章—关联容器
目录11.1 使用关联容器11.2 关联容器概述11.2.1 定义关联容器11.2.2 关键字类型要求11.2.3 pair类型11.3 关联容器操作11.3.1 关联容器迭代器11.3.2 添加元素11.3.3 删除元素11.3.4 map的下标操作11.3.5 访问元素11.3.6 一个单词转换的map11.4 无序容器11.1 使用关联容器关联容器支持高效的关键字查找和访问操作。2个主要的关联容器(associative-container)类型是 map 和 set。允许重复保存关键字的容器
2021-05-08 11:06:09
445
原创 C++ primer第十章—泛型算法
目录10.1 概述10.2 初识泛型算法10.2.1 只读算法10.2.2 写容器元素的算法10.2.3 重排容器元素的算法10.3 定制操作10.3.1 向算法传递函数10.3.2 lambda表达式10.3.3 lambda捕获和返回10.3.4 参数绑定10.4 再探迭代器10.4.1 插入迭代器10.4.2 iostream迭代器10.4.3 反向迭代器10.5 泛型算法结构10.5.1 5类迭代器10.5.2 算法形参模式10.5.3 算法命名规范10.6 特定容器算法10.1 概述大多数算
2021-05-07 21:20:20
547
原创 C++ primer第九章—顺序容器
目录9.1 顺序容器概述9.2 容器库概览9.2.1 迭代器9.2.2 容器类型成员9.2.3 begin和end成员9.2.4 容器定义和初始化9.2.5 赋值和swap9.2.6 容器大小操作9.2.7 关系运算符9.3 顺序容器操作9.3.1 向顺序容器添加元素9.3.2 访问元素9.3.3 删除元素9.3.4 特殊的forward_list操作9.3.5 改变容器大小9.3.6 容器操作可能是迭代器失效9.4 vector对象是如何增长9.5 额外的string操作9.5.1 构造string的其他
2021-05-06 21:07:15
176
原创 C++ primer第八章—IO库
目录8.1 IO类8.1.1 IO对象无拷贝或赋值8.1.2 条件状态8.1.3 管理输出缓冲8.2 文件输入输出8.2.1 使用文件流对象8.2.2 文件格式8.3 string类8.3.1 使用istringstream8.3.2 使用ostringstream8.1 IO类部分IO库设施设施作用istream输入流类型,提供输入操作ostream输出流类型,提供输出操作cinistream 对象,从标准输入读取数据coutostream 对象,向
2021-05-06 17:12:14
313
原创 C++ primer第七章—类
目录7.1 定义抽象数据类型7.1.1 设计Sales_data类7.1.2 定义改进的Sales_data类7.1.3 定义类相关的非成员函数7.1.4 构造函数7.1.5 拷贝、赋值和析构7.2 访问控制与封装7.2.1 友元7.3 类的其他特性7.3.1 类成员再探7.3.2 返回*this的成员函数7.3.3 类类型7.3.4 友元再探7.4 类的作用域7.5 构造函数再探7.6 类的静态成员7.1 定义抽象数据类型7.1.1 设计Sales_data类7.1.2 定义改进的Sales_dat
2021-05-05 15:15:05
666
原创 C++ primer第六章—函数
目录6.1 函数基础6.1.1 局部对象1. 自动对象2. 局部静态对象6.1.2 函数声明6.1.3 分离式编译6.2 参数传递6.2.1 传值参数6.2.2 传引用参数6.2.3 const形参和实参6.2.4 数组形参6.2.5 main:处理命令行选项6.2.6 含有可变形参的函数1. initializer_list形参2. 省略符形参6.3 返回类型和return语句6.3.1 无返回值函数6.3.3 有返回值函数6.3.3 返回数组指针6.4 函数重载6.5 特殊用途语言特性6.5.1 默认实
2021-05-04 19:50:52
205
原创 计算机组成原理—第四章:存储器
目录4.1 概述4.1.1 存储器分类1. 按存储介质分类2. 按存取方式分类4.1.2 存储器的层次结构4.2 主存储器4.2.1 概述1. 主存中存储单位地址的分配2. 主存的技术指标4.2.2 半导体存储芯片简介1. 基本结构2. 译码驱动方式4.2.3 随机存取存储器1. 静态RAM(SRAM)2. 动态RAM(DRAM)3. 两种RAM的比较4.2.4 只读存储器4.2.5 CPU与存储器的连接4.2.6 存储器的校验4.2.7 提高主存的访问和存储速度4.3 高速缓冲存储器(Cache)4.3.
2021-05-03 22:41:29
1441
原创 C++ primer第五章—语句
目录5.1 简单语句5.1.1 空语句5.2 语句作用域5.3 条件语句5.3.2 switch语句5.4 迭代语句5.4.2 传统的for语句5.4.3 范围for循环语句5.4.4 do-while语句5.5 跳转语句5.5.3 goto语句5.6 try语句块和异常处理5.6.1 throw表达式5.6.2 try语句块5.6.3 标准异常5.1 简单语句5.1.1 空语句C++语言中的大多数语句都以分号结束,一个表达式加上 ; 就变成了 表达式语句(expression statement)
2021-05-03 16:12:09
201
原创 C++ primer第四章—表达式
目录4.1 基础4.1.1 基本概念左值和右值优先级和结合律4.2 算术运算符4.3 逻辑和关系运算符4.4 赋值运算符4.5 递增和递减运算符4.6 成员访问运算符4.7 条件运算符4.8 位运算符4.9 sizeof运算符4.10 逗号运算符4.11 类型转换4.11.1 算术转换4.11.2 其他隐式转换4.11.3 显示转换4.12 运算符优先级表4.1 基础4.1.1 基本概念左值和右值当一个对象被用作右值的时候,用的是对象的值(内容)当一个对象被用作左值的时候,用的是对象的身份(在内
2021-05-03 11:03:25
215
原创 C++ primer第三章—字符串、向量和数组
目录3.1 命名空间的using声明3.2 标准库类型string3.2.1 定义和初始化string对象3.2.2 string对象上的操作3.2.3 处理string对象中的字符3.3 标准库类型vector3.3.1 定义和初始化vector对象3.3.2 向vector对象中添加元素3.3.3 其他vector操作3.4 迭代器的介绍3.4.1 使用迭代器3.4.2 迭代器的运算3.5 数组3.5.1 定义和初始化内置数组3.5.3 指针和数组3.5.5 与旧代码的接口3.6 多维数组3.6.1 多
2021-05-02 19:08:38
125
原创 C++ primer第二章—变量和基本类型
目录2.1 基本内置类型2.1.1 算术类型带符号类型和无符号类型2.1.2 类型转换2.1.3 字面值常量字符串字面值2.2 变量2.2.1 变量定义2.2.2 变量声明和定义的关系2.2.3 标识符2.2.4 名字的作用域2.3 复合类型2.3.1 引用2.3.2 指针2.3.3 理解复合类型的声明2.4 const限定符2.4.1 const的引用2.4.2 指针与const2.4.3 顶层const2.1 基本内置类型2.1.1 算术类型类型含义最小尺寸bool布尔类型
2021-05-02 15:32:22
134
原创 C++ primer第一章—开始
目录1.2 初识输入与输出1.2.1 标准输入输出对象1.2.2 向流写入数据1.2.3 从流读取数据1.3 注释简介1.2 初识输入与输出1.2.1 标准输入输出对象输入输出对象作用cin标准输入cout标准输出cerr输出警告和错误信息clog输出程序运行时的一般性信息1.2.2 向流写入数据<<运算符:左侧运算对象必须是一个ostream对象,右侧的运算对象是一个要打印的值,计算结果是写入给定值的那个ostream对象。当遇到文
2021-05-02 09:08:48
98
原创 基于神经网络的图像数字识别
基于神经网络的图像数字识别数据可视化load('ex3data1.mat');m = size(X, 1);>> rand_indices = randperm(m);%将数字随机打乱sel=X(rand_indices(1:100),:);displayData(sel);load('ex3weights.mat'); %导入参数值pred = predict(Th...
2020-04-15 20:06:37
656
原创 python——贝叶斯拼写检查器
文本预处理要是遇到我们从来没有过见过的新词怎么办. 假如说一个词拼写完全正确, 但是语料库中没有包含这个词, 从而这个词也永远不会出现在训练集中. 于是, 我们就要返回出现这个词的概率是0. 这个情况不太妙, 因为概率为0这个代表了这个事件绝对不可能发生, 而在我们的概率模型中, 我们期望用一个很小的概率来代表这种情况. lambda: 1import re, collections# 把语...
2020-03-28 15:04:25
239
原创 Python——泰坦尼克号船员获救
代码数据预处理import pandas titanic = pandas.read_csv("titanic_train.csv")titanic.head(5)#数据预分析print(titanic.describe())#对缺失量进行数据填充(用中位数或者均值)titanic["Age"] = titanic["Age"].fillna(titanic["Age"].me...
2020-03-28 11:46:20
369
原创 Python——决策树
代码调式import matplotlib.pyplot as pltimport pandas as pd#导入数据from sklearn.datasets.california_housing import fetch_california_housinghousing = fetch_california_housing()print(housing.DESCR)#检查数据...
2020-03-28 09:59:11
442
原创 MFC框架
原理API:操作系统把它所能够完成的功能以函数的形式提供给应用系统使用,应用程序对这些函数的调用就叫做系统调用,这些函数的集合就是Windows操作系统提供给应用程序编程的接口(简称为WindowsAPI)消息响应:操作系统将事件传递给应用程序,应用程序对事件响应的过程称为消息响应消息机制:操作系统将每个事件都包装成为一个“消息”的结构体(Message),来传递给应用程序句柄:资源的...
2019-11-09 18:54:08
178
原创 最短路计数
题目描述给出一个N个顶点M条边的无向无权图,顶点编号为1−N。问从顶点1开始,到其他每个点的最短路有几条。输入格式第一行包含2个正整数N,M,为图的顶点数与边数。接下来M行,每行2个正整数x,y,表示有一条顶点x连向顶点y的边,请注意可能有自环与重边输出格式共N行,每行一个非负整数,第i行输出从顶点1到顶点i有多少条不同的最短路,由于答案有可能会很大,你只需要输出ans mod 100...
2019-11-04 19:18:34
312
原创 广(宽)度优先搜索
广度优先搜素一、用到的知识点1、队列#include <queue>queue<int> gQueuegQueue.push(0)gQueue.front():得到最先插入的数据gQueue.pop()二、使用到的函数1、BFS()#include "pch.h"#include <iostream>#include <stack...
2019-11-02 23:30:57
126
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人