自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android组件-ContentProvider

Android学习笔录

2024-07-05 23:12:46 876

原创 Android组件-BroadCastReceiver

Android学习笔录

2024-07-05 23:11:56 633

原创 Android组件-Service

Android学习笔录

2024-07-05 23:10:35 506

原创 Android组件-Activity活动

Android学习笔录

2024-07-05 23:09:32 513

原创 高等数学竞赛

2024-03-10 11:07:40 980 1

原创 ROS学习1

在ROS中,回调函数是一种常见的机制,用于处理订阅者(subscriber)接收到的消息。函数是一个阻塞调用,它使ROS节点保持活动状态,并允许它处理传入的消息并执行回调函数。它实际上启动了一个事件循环,等待订阅的话题上的消息到达,并触发相应的回调函数。回调函数的作用是根据接收到的消息执行特定的逻辑。通过编写回调函数,您可以定义自己的消息处理逻辑,例如解析消息内容、更新状态、执行特定的操作等。因此,回调函数在ROS中是一种非常常见且有用的机制,它使您能够以异步、事件驱动的方式处理接收到的消息。

2024-03-10 10:59:39 764 1

原创 C++自我学习.13

相反则无法赋值,因为父类对象不是子类的对象,是想假如就算可以赋值,一个派生类类型的指针指向一个基类对象,函数调用时,相当于一个基类对象调用子类的函数,这必然会会导致一些错误。C++编译一个具有多个虚函数的类时,它会为这个类创建的一个Vtable(虚表),其中包含很多指向每一个虚函数的函数指针,指向函数的指针存储。将一个基类指针向下强制转化为派生类指针,如果基类指针指向我这个将要转化的派生类类型的对象,那么我将返回这个基类指针所指向的地址,否者返回0。

2024-03-10 10:55:01 936 1

原创 c++.自我学习12

这就是为什么C++能够输入输出这么多数据类型(整型,浮点型,字符型,枚举型)同样包括指针和C风格的字符串char*cin就是istream的一个实例,cout,cerr,clog就是ostream的一个实例。看到返回ostream类型的引用和istream型的引用,不要害怕,同string类类似。一元运算符重载函数可以是非static的不带参数的成员函数,或者一个参数的非成员函数。<ctime>标准头文件,是由C继承过来,所以其实都是C的函数,tm_sec,tm_min,tm_hour 秒,分,时。

2024-03-10 10:54:27 805 1

原创 C++.自我学习11

我不得不赞叹继承的伟大,多么方便,多么可以减少时间的花费,极大的提升了代码复用度,简明了,可能以后需要写出来的都是特殊化的东西,共通的代码基本都看不见了,一级基类,二级基类,三级,..............不断的继承中,层次结构也如同一棵大树枝繁叶茂。1.继承了父类中除构造函数,析构函数,重载的赋值运算符函数,友元函数,new运算符,以外的所有成员,但是派生类的构造函数,析构函数,重载的赋值运算符可调用基类的构造函数,析构函数,重载的赋值运算符。无法被继承,也要写一个派生类的构造函数。

2024-03-10 10:53:37 315 1

原创 C++.自我学习.10

可以理解为if语句,执行到#ifndef TIME_H,判断time.h头文件是否定义,真则跳过,假则执行。#运算符将替换文本的标记转换为带引号的字符串,空格隔开的字符串会在预处理中连接起来。如果前面程序中遇到的 x>10 ,打印包含行号和文件名的错误信息,终止程序。查看定义的宏有没有大于500,或者有时用作检查有没有定义宏。1.含参数(首先在宏替换文本替换参数,然后把宏展开)4,宏和内联实质一样,拷贝代码,减少函数调用开销。1.编写这些语句时,头文件名全部大写,宏替换文本 将 替换宏标识符,再展开。

2024-03-10 10:53:02 300 1

原创 c++自我学习.9

throw创建了一个类型为 invalid_argument的异常对象,调用其构造函数,终止程序。定义为const的成员函数调用同一个对象中的非const函数,导致编译错误。5.构造函数中调用非const成员函数初始化const对象是允许的。(反过来说:一个类的对象中的成员可以作为另一个类的对象).将修改数据成员的成员函数定义为const导致编译错误。对象撤销时,会自动隐式的调用对象的析构函数。const对象上调用非const成员函数。一个类可以将其他类的对象作为其对象的成员。

2024-03-10 10:52:26 304 1

原创 C++自我学习.8

对于大部分的排序需求,sort()都是可以满足的。//优化,换成array对象,sort( num.beging( ), num.end( ) , cmp ),,cmp是参数排序准则(也叫比较函数,compare),可以不写,那默认从小到大排序,也可以great<int,double,float>( ),实现对int,double,float型数组的从大到小排序。//对a中的从a.begin()(包括它)到a.end()(不包括它)的元素倒置,但不排列,如a中元素为1,3,2,4,倒置后为4,2,3,1。

2024-03-10 10:51:53 370 1

原创 c++自我学习.7

sizeof是C/C++中的一个操作符(operator),或者叫运算符,不能叫函数,可以将一段连续的内存初始化为某个值,但它是以字节为单位进行初始化的。memset(首地址,值,sizeof(地址总大小));简单的说其作用就是返回一个对象或者类型所占的内存字节数。例:memset(a,0,sizeof(a));memset函数为初始化函数,array和vector。

2024-03-10 10:51:18 376 1

原创 C++自我学习.6

每个输入操作后,都会返回一个引用,如果引用被用作判断条件,将会隐性调用流重载函数void*强制转换运算符函数,根据最后输入的成功与失败将引用转化为非空指针还是空指针值,非true,空false。遇到分隔符,不会将分隔符输出,保留在输入流(缓冲区)中,除非将其移出(cin.ignore()),否则会留到到下一次输出。输入流的eofbit被置位1,failbit也被置位1。读取成功则返回true,失败(遇到EOF标志)返回false同样可用于循环,,读取成功,返回true,读取到文件结束符,返回false。

2024-03-10 10:50:24 287 1

原创 C++自我学习.5

(1)vector<int> a(10)定义了10个整型元素的向量(尖括号中为元素类型名,它可以是任何合法的数据类型),但没有给出初值,其值是不确定的。insert(a.begin()+1,b+3,b+6)从a[1]开始插入b[3],b[4],b[5]11. data()返回一个指向容器首个元素的指针。1.*aptr返回指针指向的对象的值,*aptr上的任何操作都相当于在y上,如同y的别名。

2024-03-10 10:49:42 893 1

原创 c++.自我学习.4

如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况.(指定类型安全性,保护对象不被意外修改),volatile指定被修饰的对象类型的读操作是副作用(因此读取不能被随便优化合并,适合映射I/O寄存器等)。在C++中是特殊的类类型,声明中仅默认隐式的成员和基类访问限定与class不同(struct是public,class是private)。bool即为布尔类型,属于基本类型中的整数类型,取值为真和假。

2024-03-10 10:48:58 778 1

原创 linux1

binary的缩写,存放最常使用的命令,由系统,系统管理员,用户共享。

2023-10-30 00:10:32 17 1

原创 C++自我学习.3

接受一个随机数引擎作为参数,分布类的对象使用这个参数生成随机数,并映射到指定的分布,根据用户的需求利用随机数引擎生成符合条件的随机数某一分布概率的随机数。很简单,就是有一批功能类似(甚至相同)的函数,只是面对传来的不同数据类型的实参,分别应用到不同的函数中去计算。左值是一个对象或者变量,代表一个固定地址,而没有固定地址的临时对象或临时变量就是右值,不能代表一个固定地址。左值表达式就是一个值为左值的表达式,右值表达式就是值为右值的表达式。当返回的是被调函数中的一个变量的引用时,注意如果自动变量不加。

2023-09-11 23:11:06 15

原创 c++自我学习.2

在计算机系统中,栈被定义为一个特殊的容器,用户可以将数据压入栈中,也可以将已经压栈的数据出栈;栈总是自下增长的,栈顶由称为esp的寄存器进行定位,压栈操作使得栈顶的地址减小,出栈的操使栈顶地址增大。逻辑操作符即结果为布尔类型的表达式,一般和关系运算符组成较复杂的表达式,其他类型也可以作为操作数,最终转化为bool类型。每次迭代,对v的操作直接操作在vec上,vs=是vec的别名。名字(标识符组成),类型,值,地址(指针),存储期,作用域。程序员还可以隐性的指定枚举类型的所隐含的整数类型,

2023-09-11 23:10:43 20

原创 C++自我学习1

这种运算不仅仅是代数上的加减乘除,也可以是在计算机中存在的数据类型的改变,还可以是一种抽象的操作。比如说我们定义组装两个机械零件,那么我们也可以定义一种已知的操作“+”,使其能够表示组装零件的操作,总之,对于基本的整型、浮点数等的种种运算操作,我们都可以用操作符(Operator)来表示。使用函数原型定义类的头文件,函数原型类型,数据成员,编译器必须知道类的数据成员,以此来为对象留内存空间,深度理解,面向对象,采用模块化的设计,无二义性的思想已经渐入渐深在我的脑子中,(表达式1,表达式2,表达式3……

2023-06-12 21:35:34 23 1

空空如也

空空如也

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

TA关注的人

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