- 博客(196)
- 资源 (3)
- 收藏
- 关注

原创 CS资源收集
本文的内容旨在收集互联网上优质的学习资源!1. 清华大学计算机系课程攻略:https://github.com/PKUanonym/REKCARC-TSC-UHT2. 浙江大学课程攻略共享计划:https://github.com/QSCTech/zju-icicles3. 网易云课堂大学计算机课程:大学计算机专业 - 网易云课堂4.计算机导论:Harvard CS50CS50: Introduction to Computer Science Berkeley CS61ACS .
2022-04-09 12:41:24
3609
原创 C++ 如何计算两个gps 的距离
C++ 完全可以计算。关键是:要先把经纬度 + 海拔 (lat, lon, alt) 转换成(地心地固坐标系),然后计算欧氏距离即可。
2025-04-29 20:12:28
242
原创 【面向对象设计C++--翁恺】37-STL简述
https://blog.csdn.net/qq_40155090/category_10014675.html?spm=1001.2014.3001.5482
2025-04-16 10:31:08
172
原创 【面向对象设计C++--翁恺】35-流的概念 + 36-流的运算符
cout、cin(C中printf、scanf不安全,不对字符串里面进行检查)。,一维(一个数字就能确定位置)单方向 (流过去了就没有了,不能在任意的地方读写),(所有的输入、输出format分别在做解析parse和格式化)、针对整数来讲的,看<<、>>运算符的。
2025-04-16 10:28:55
243
原创 【面向对象设计C++--翁恺】34-异常语句
handlers are checked in order of appearance 针对每一个catch做下面的 1, 2, 3。if you constructor can’t complete,throw an exception 构造没有完成,析构不能调用。
2025-04-16 10:21:58
1021
原创 【面向对象设计C++--翁恺】33-异常的抛出和捕捉
这篇博客探讨了在C++中如何处理模板类`Vector`中数组索引越界的问题。提出了四种不同的处理方式,包括返回随机内存对象、返回特殊错误值、程序直接退出以及优雅地抛出异常。作者建议使用异常处理,因为这可以将错误处理的责任转移到调用者,并详细解释了如何定义和抛出`VectorIndexError`异常。同时,通过示例展示了不同情况下调用者如何捕获和处理这些异常。
2025-04-16 10:08:23
749
原创 【面向对象设计C++--翁恺】31-模板
require common base class 方案1。untyped lists 方案3 没有类型的list。函数模板(用来做出函数) 类模板。类模板里面的每一个函数都是函数模板。clone code 方案2。
2025-04-16 09:50:42
610
原创 【面向对象设计C++--翁恺】30-运算符重载-类型转换
本文详细介绍了C++中内置类型与用户自定义类型的转换,包括隐式转换和显式转换。通过示例解释了如何使用单参数构造函数和转换操作符进行类型转换,并讨论了防止隐式转换的方法。强调了过度使用类型转换可能导致的问题,建议使用显式转换函数以提高代码可读性。
2025-04-16 09:42:05
935
原创 【面向对象设计C++--翁恺】28-运算符重载-原型
return value 看是否可以被修改,是否制造出一个新的对象,或者看是否可以做左值。例如operator+ 一定产生出一个新的对象,并且不能做左值,所以返回const对象。对于 operator=(赋值)修改了自己,能做左值,所以只能返回一个reference引用。,修改算子的传进去不能用 const(++,-- ,+=,-= 会修改算子),不修改算子的传进去的一定是const(+,-,*,/, =,…对于重载一定对某个对象进行重载,所以传进去的参数一定是引用类型的。)返回的是bool量。
2025-04-16 09:31:35
717
原创 【面向对象设计C++--翁恺】27-运算符重载-基本规则
z = x + 3, 编译器从左到右扫描,用x的operator+,integer里面有函数将int 3转化为integer的类型(构造函数);z = 3 + y, 编译器从左到右扫描,用int 3的+,integer里面没有将nteger的类型转化为int类型的函数;x + y, 编译器从左到右扫描,用x的operator+,两个intrger类型;,而且返回值只是为了能返回,在函数里并没有用,所以在这个函数里的拷贝构造是被优化的。使用成员函数,编译器从左到右扫描,看用谁的运算符。
2025-04-16 09:28:15
732
原创 【面向对象设计C++--翁恺】25-静态对象+26-静态成员
它在哪里和什么时候初始化是不一样的,内存在link的时候已经被分配好了,内存里的变量需要去初始化的,C++可以利用的一点是vPtr,如果如果vPtr被初始化过那么它是有效的东西–vtable的地址,否则是乱七八糟的东西,不是所有的类都有vPtr,目前的格局是实现不了的(通过类的某个已有的成员是实现不了的,想法不错,将来可以自己实现。静态成员函数,可以在没有对象的时候就被调用,不能与具体对象联系在一起,因此不能用this,也不能用非静态成员函数或变量。i 是全局的,所有的对象的 i 都一样的。
2025-04-16 09:14:56
870
原创 【面向对象设计C++--翁恺】23-拷贝构造1+24-拷贝构造2
所以,如果有一个构造函数,这个构造函数的参数是这个该类型的const 引用,这个构造函数在用该类的对象进行对象初始化时候被调用。而下面这种,传进去过程中不会发生拷贝构造,因为并没有在函数中制造出一个新的对象,只是把外面对象的引用传到了 拷贝构造函数。所以访问一个同类对象的private 东西是可以的。如果成员有指针,会发生指针的拷贝,两个指针指向一个内存。会拷贝每个成员变量,做成员变量对成员变量的拷贝。,别人就不能拷贝构造你的对象了,即别人设计一个函数,使用类的一个对象来构造另一个该类的新的对象。
2025-04-15 14:43:50
826
原创 【面向对象设计C++--翁恺】22-引用再研究
对象送入一个函数,对象可能很大。如果送对象本身,大量数据传递发生,占据很大空间,花费时间做push,某些情况下必须这么做。方法2:送指针进去,函数内部获得对外面对象的控制权,会改变外面的对象。在指针前面加上const,在函数内无法进行修改该对象,编译器生成的代码不能对对象做修改。declared without initial value 如果一个类的成员是引用,那么声明的时候没有办法给一个初始值。可以任意使用那些引用,但是不能做修改,不能做。C++ 难在内存模型!
2025-04-15 14:27:29
547
原创 【面向对象设计C++--翁恺】20-多态性+21-多态的实现
ellipse 有自己的vtable,该vtable 的结构和父类shape的vtable是一样的。但是里面的值是不一样的。当 p 所指的 render 时候,实际上是 p 所指的对象的第一个地址取出来,从该地址访问到了这张vtable ,从。所有virtual类的对象里面的最头上都会加上一个隐藏的指针—vPtr–指向一张表 vtable(里面是所有virtual函数的地址),这种实现很快,不用在运行时候知道对象的类型是什么,只是从vptr找到了那张vtable, 然后找到了这个东西。
2025-04-15 14:14:45
1008
原创 【面向对象设计C++--翁恺】19-向上造型
public inheritance should imply(意味着) substitution(代替)子类中的函数如果与父类中的函数重名则父类的中的函数隐藏。子类的对象可以当作父类来看待。
2025-04-15 14:05:09
218
原创 【面向对象设计C++--翁恺】18-引用
C++有三种方式放对象,有三种方式访问对象;**Java只有一个地方可以放对象,所有对象都放在堆里面**,**只有一种方式访问对象,就是通过“指针”**,**因为它只能通过指针访问对象,因此他可以把那个“\*”去掉,然后规定说这不叫指针这叫引用,这其实和C++的引用是不一样的,更像是C++的指针,因为引用是不能做引用之间的赋值的**,**实际上是指针,区别在于外形上没有那个星号,不能做运算(C的指针可以做计算)
2025-04-15 14:02:05
985
原创 【面向对象设计C++--翁恺】17-const
在 const 前, 指针是 const;* 在 const 后,对象是 const。编译器不知道x的值,因为编译器不知道需要分配内存的大小。里,全局变量中的这种常量(“hello,world”)在。
2025-04-15 13:53:19
1021
原创 【面向对象设计C++--翁恺】15-函数缺省参数值+16-内联函数
–声明–告诉编译器里面有什么,给调用这个函数的地方看的,不能生成成调用的代码,应该把函数的body插进来。把函数的body放在class(.h中)的后面(本应该放在.cpp中);如果在一个函数的前面有一个“inline”则不再是定义而是声明,因此。相同的函数,但是返回类型不同,编译报错,无法知道调用哪个。default arguments 的机制是编译时刻的事。”–定义–函数的body实体,产生函数的。解决方案:每一个类都有一个对应的“类的成员函数在声明的时候定义自动是。—>将函数的实体放入“
2025-04-15 13:40:46
954
原创 【面向对象设计C++--翁恺】14-子类父类关系
如果父类中存在函数重载,子类中存在一个相同的函数,子类中只有这个函数,父类的被隐藏。原因:C++中,这两个不过是同名而已,并没有关系,把父类的那些函数都隐藏了。创建一个子类的对象,父类的构造函数将会被调用。如果Employee 没有默认构造函数。解决:在子类的构造函数中以。Manager::print 使用了 Employee::print。初始化列表:顺序是按照声明的顺序,而不是在初始化列表中写的顺序。父类首先被构造,然后是子类被构造。析构时候,先子类后父类。的方式,给父类传递父类构造函数需要的参数。
2025-04-15 11:51:08
428
原创 【论文阅读】UFOMap_An_Efficient_Probabilistic_3D_Mapping_Framework_That_Embraces_the_Unknown
Abstract−3D1cm摘要−3D模型是许多机器人应用的重要组成部分。在环境事先未知,或仅部分环境已知的应用中,三维模型能够高效处理未知空间至关重要。路径规划、探索和重建都属于这一范畴。
2025-04-15 11:23:48
1157
原创 CSDN网页转Markdown
因为之前我的 csdn 都是富文本编辑的,我想都转为 markdown 格式,以进行本地备份或者文章迁移,因此我非常需要将 CSDN网页转Markdown。https://html-to-markdown.com/demo 还可以,可以保存代码格式。https://tool.lu/markdown/ 代码支持的不好,没有保存代码格式。搜索:article_content。
2025-04-15 11:01:27
250
原创 【面向对象设计C++--翁恺】11-初始化列表+12-对象组合
列表初始化的形式:m_saver(name,address),m_balance(0,cents)。构造函数之前进行执行,如果不这么做,这两个类需要有默认构造函数,并且需要做。意味着,创建SavingAccount类的对象需要初始化SavingAccount,其他两个对象有自己的构造函数。Student::Student(sting s):name(s){} // 初始化。** 如果类里面有成员变量是对象,那么用列表初始化,不能放到构造函数中。如果类的成员是对象,未被初始化则会自动调用。
2025-04-15 10:50:05
729
原创 【面向对象设计C++--翁恺】09-new and delete+10-访问限制
C++的OOP 仅在源代码时候存在,编译后的 .o 和其他语言是一样的,不会在运行时刻检查访问限制。new了对象但是不delete,因为我们现在的程序都是跑一下,我们的操作系统都是多进程,程序每次运行都是一个进程,操作系统给分配了虚拟空间,当程序结束后,空间会被回收,即使申请了内存没有释放,打开文件没有关闭,但是程序结束后都结束了。private是对类来说的不是对对象来说的,同一个类的对象是可以互相访问私有变量的,private的这种限制仅仅是在编译时刻,运行时刻仍然有办法访问别的类的私有成员。
2025-04-15 10:36:02
563
原创 【面向对象设计C++--翁恺】05-时钟例子+06-成员变量+07-构造和析构+08-对象初始化
成员变量在类的成员函数中就可以使用,不用考虑它们在哪里。parameters:函数的参数 和 local variable:本地变量 是相同的东西。this 是一个关键字,是一个指针,类型是该函数所属的类的对象的指针。函数是属于类的,不是属于对象的。编译器会在 { 开始的地方分配在大括号内所有变量的空间。c++是一个注重效率的语言,不会自己做初始化,区别于java,自己搬进来自己打扫;(形同C语言中:要修改结构中的变量将结构的的地址作为函数的参数传入函数中—成员变量不在类里面, 在类的每个对象里面。
2025-04-15 10:25:34
822
原创 【面向对象设计C++--翁恺】03-自动售货机例子+04-头文件
每个类都应该有 。在 中声明类,在 .cpp 里面定义 .h 里面声明的实体。2. 符号 域的解析符 表示:类中的一个函数04-头文件1. definition of a classin c++,separated .h and .cpp files are used to define one classclass declaration and prototypes in that class are in the header file(.h)all the bodies
2025-04-15 10:01:30
790
原创 【面向对象设计C++--翁恺】01-第一个C++程序+02-面向对象编程Object-Oriented
导向:Oriented从对象出发考虑、解决、分析问题。对象:object = entity(东西,实体)。什么都是东西。可能是可见也可能是不可见。在程序设计语言中,对象就是变量。比如int i变量用来保存数据,变量的类型决定变量能保存什么样的数据。对象 = 属性 + 服务data:the properties(性质) or status(身份),被保护起来operations(操作):函数,提供服务不要直接去操作内部的数据。写程序为了解决问题,过程就是把问题用程序描述出来。
2025-04-14 20:29:30
766
原创 50 个适合所有人的 2024 款最佳 Ubuntu 应用程序
Ubuntu 是一种流行的 Linux 发行版,它为各种用途提供了广泛的应用程序。Ubuntu 及其默认桌面产品 GNOME 使您能够为各种目的试用许多应用程序。无论您是学生、专业人士还是临时用户,Ubuntu 生态系统中都有适合您的应用程序。在本文中,我们将探讨一些可以提高您的工作效率、创造力和整体用户体验的最佳 Ubuntu 应用程序。其中一些是显而易见的,而一些对您来说可能是新的。
2024-09-14 09:44:13
6741
原创 Llama 3.1论文中文对照翻译
现代人工智能(AI)系统由基础模型驱动。本文介绍了一组新的基础模型,称为 Llama 3。它是一群原生支持多语言、编码、推理和工具使用的语言模型。我们最大的模型是一个密集型 Transformer,具有 405B405B 参数和高达 128K128K 个令牌的上下文窗口。本文对 Llama 3 进行了广泛的实证评估。我们发现 Llama 3 在众多任务上与 GPT-4 等领先语言模型相比质量相当。我们公开发布了 Llama 3,包括 405B 参数语言模型的预训练和后训练版本以及用于输入和输出安
2024-08-09 09:05:09
2847
原创 ubuntu20.04安装cuda11.8 + cuDNNv8.9.0 (July 11th, 2023), forCUDA 11.x+TensorRT-8.6.1+protobuf-3.194
ubuntu20.04 安装 cuda11.8 + cuDNN v8.9.0 (July 11th, 2023), for CUDA 11.x + TensorRT-8.6.1
2023-08-11 21:22:11
5294
原创 ubuntu20.04 opencv4.2 安装笔记
ubuntu20.04 opencv4.2 opencv_contrib-4.2.0 安装
2023-08-11 21:17:19
1258
原创 【水下图像增强】Enhancing Underwater Imagery using Generative Adversarial Networks
自动水下航行器(Autonomous underwater vehicles (AUVs))依靠各种传感器——声学、惯性和视觉(acoustic, inertial and visual)——进行智能决策。由于其 非侵入性、被动性和高信息量,视觉(non-intrusive, passive nature, and high information content) 是一种有吸引力的传感方式,特别是在较浅的深度。
2023-03-05 21:18:50
3985
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人