- 博客(23)
- 收藏
- 关注
原创 【24.2.4笔记】C++ Primer自学 Day21
有时候我们对不同类型的值进行运算时,编译器会自动将小类型转换成大类型【不损失精度的准则】,而不会报错。【如果存在一个最大的操作数类型,那么在算术表达式里面,其他的操作数类型都会被转换成最长的类型。1、算术表达式中:在算术表达式里面有不同的类型,编译器会自动将小类型转换成大类型。2、赋值表达式中:将右值的类型转换成左值的类型,中间可能会涉及到精度损失。3、传参给函数时:此时传递的参数的类型会自动转换成函数设计时的参数类型。4、函数返回值:函数返回值也会将返回的函数值转换为声明函数时的类型。
2024-02-09 13:37:48
300
原创 【24.2.3笔记】C++ Primer 自学Day 20
上面的声明,声明了32位的bieset对象,和数组一样,它的下标也要从0开始。bitset类也支持位操作符。
2024-02-03 15:49:53
472
原创 【24.1.29笔记】自学C++ Primer Day19
位操作符把操作数解释成有序的位集合,位集合可能是独立的,也可能组成域。在C++中,位集合通常用整数类型表示【粗浅的理解就是把数用二进制表示,然后对每一个位进行处理】,每个位代表一个二进制位【位操作符只能对二进制位进行操作】。2、使用标准库中的bitset类【用来管理位向量的基本形式和基本操作】1、使用内置整型:int 【一般使用unsigned int】;
2024-01-29 20:30:36
241
原创 【24.1.25笔记】自学C++ Primer Day18
在每个程序执行时,系统为它们都提供了可用的内存池,叫做空闲存储区或者堆,这块内存需要动态分配。
2024-01-26 13:21:22
306
1
原创 【24.1.22笔记】C++ Primer自学 Day17
当第一个语句中条件被满足时,返回第二个表达式的值,如果不满足,则返回第三个表达式的值。条件操作符可以被嵌套使用。
2024-01-22 19:50:39
409
原创 【24.1.20笔记】C++ Primer自学 Day16
就是赋值操作符,把右值赋给左值【初始化一次,赋值可以无数次】如果左值和右值的数据类型不同,赋值时编译器会给个警告【如果类型转换是有可能的话】,会尝试把右值数据类型转变成左值的数据类型【隐式转换】,但是常常会涉及精度丢失的问题。如果不能够进行隐式转换,那就会报错。【在进行运算时,一定要注意操作符的顺序】连等操作的合法性:1、相同类型已经定义的变量,连等的赋值是可以的;2、不同类型已经定义的变量,连等的赋值是不行的;3、在定义时,尽量不使用连等;
2024-01-20 16:42:24
449
原创 【24.1.19笔记】C++Primer自学 Day15
表达式由一个或者多个操作数构成。更一般情况下,表达式要加上操作数之间的操作【操作符】。作用在一个操作数上的操作符叫做一元操作符,同理,作用在两个操作数上的叫做二元操作符。一般来说,表达式的结果是右值。表达式的结果一般由子表达式的计算顺序决定,所以我们要了解操作符的优先级和结合性。
2024-01-19 16:43:51
423
1
原创 【24.1.18笔记】C++Primer自学 Day14
如果我们没有在类体内对操作符进行重载【如果操作符不是该类的成员函数】,那么如果要访问类的私有成员,就必须要在类体内声明是该类的友元【我是你朋友,能使用你的一些私人用品】。操作符重载:在日常使用中,我们对int和double等等变量可以简单使用运算符完成运算的工作,但是对于类来说,我们需要对操作符进行重载,用操作符实现类的加减等操作。类的成员函数可以在类体外被定义:【但是要告诉编译器属于什么类、他们的名字、返回类型、参数表】可以定义在.c文件中。重载的操作符可以被再次重载,只要传参不同或者返回类型不同。
2024-01-18 16:02:36
417
1
原创 【24.1.17笔记】C++ Primer 自学 Day13
举个例子:【在使用volatile之前,如果我们不改变一个变量的值,那么编译器为了节省汇编语言或是空间,它会直接把变量优化成一个常量来看,这样可能能缩短汇编语言的长度【中间可能省略一些条件代码】。】简单记住,遇到const的时候,typedef并不能简单展开,const和typedef后的名字同时修饰变量。使用typedef名字后,我们并没有引入一种新的类型,而是为现有的类型引入了一个助记符号,在一些情况下,它能够降低声明的复杂性。但是对于具体的使用场景,还是没能理解,等以后看到项目中代码再重新回头理解。
2024-01-17 14:44:36
524
原创 【24.1.16笔记】C++ Primer自学 Day12
vector的使用有两种风格,第一种是数组风格,第二种是STL容器风格。和数组一样,vector可以通过下标访问元素,用size()和empty()来检查大小。vector除了使用下标来访问元素,还可以通过迭代器来操作和访问元素:【在这之前先要知道怎么返回vector的地址】迭代器具有指针的功能,可以通过解引用来访问元素的值。
2024-01-16 14:49:22
423
1
原创 【24.1.15笔记】C++ Primer 自学 Day 11
bool类型的值可以赋予文字true和false。当然,算术值和指针也能够隐式转换成bool类型【0和空指针是false,其他值是true】。
2024-01-15 14:45:29
462
原创 【24.1.9笔记】C++ Primer 自学 Day9
C风格的字符串指针也总是指向一个字符数组的第一个元素,即使是字符串常量,系统也会把常量储存在一个字符串数组中。2、如果要指针在遍历后重新指向原来字符串的头部,需要st=st-len-1,重新让指针定位。2、反向的转换不能自动进行,必须显式调用c_str()函数,然而这样的调用会返回一个指向常量数组的指针,必须加上const修饰符定义。C风格字符串:它被储存在一个字符数组中,一般通过char*来操作。C++有两种字符串类型,一种是C风格的字符串,另一种是C++引入的字符串类型。1、把字符串指针置零。
2024-01-09 18:23:16
465
原创 【24.1.8笔记】自学C++ Primer Day8
变量为我们提供有名字的储存区,可以通过程序访问,对其进行读写。· 变量有特定的数据类型,决定了内存分配的布局、大小、储存值的范围以及操作集。变量有两个属性,一个是数据值【右值】,另一个是它的地址【左值,文字常量一般不能作为左值】。右值被读取【在其内存中将数据值读出】,左值被覆写【把右值写到左值相关内存区中】。注意:左值不能是文字常量,不能是算术表达式,不能为空。C++在使用对象之前必须要知道该对象【声明或者定义一个对象】。一个好建议:在头文件中声明好对象,在使用时包含头文件。
2024-01-08 15:13:16
476
原创 【24.1.4笔记】C++ Primer自学 Day5
扩展类的实现:1、必须提供自己的实例;2、必须提供实际的操作函数;3、必须提供自己的构造函数。【基类的构造函数无法被派生类继承,派生类的构造函数提供了向基类构造函数传递参数的接口】在冒号后面是派生类向基类传参的接口。这样传参的构造函数不需要提供显式的析构函数,因为在派生类没有引入需要析构的成员,析构函数可以通过基类的析构函数解决。C++支持多继承【继承多个类】和虚拟继承【继承派生类】。Q1:一般来说 类型子类型继承关系反映了一种is-a的关系:具有范围检查功能的ArrayRC是一种。
2024-01-05 12:47:06
452
1
原创 【23.12.27、28笔记】C++ Primer自学 Day2-3
数组是一种顺序容器,包含单一类型的元素。数组的下标从0开始。【容易发生“一位偏移错误”,导致越界】C++对数组的支持,仅限于对其中单个元素进行操作,不支持数组的抽象和对整个数组的操作。【譬如不能直接把一个数组复制给另一个使用】Q1:为什么内置数组类型不支持数组之间的赋值,支持这样的赋值需要什么信息?{需要数组中元素的数据类型,数组的长度等信息}因为在创建数组时,内存大小的类型已经被确定了。Q2:一等公民的数组应该支持怎样的操作?直接赋值,直接比较等等。
2023-12-28 20:57:04
1557
1
原创 【23.12.26笔记】自学C++ Primer Day1
本章目的是对整个C++快速浏览,得到一些基本概念。类通过继承机制和动态绑定机制扩展抽象数据类型:前者是对实现代码的重用,后者是对公有接口的重用。【类型、子类型】
2023-12-26 22:13:06
399
1
原创 【23.12.25】Jetson Xavier nx 刷机
【起因】:在捣鼓软件时,貌似下载了多个版本libtools,导致ubuntu的bash使用不了,且jetson xavier开不了机,尝试刷机解决。
2023-12-25 19:21:01
447
1
原创 Ubuntu18.04误删apt
使用apt --fix-broken install后会卸载掉apt,很头疼。在上面把arm64架构的 1.6.17版本的包下载。于是尝试下载1.6.17版本,最后成功。
2023-12-20 21:31:57
732
1
原创 重新安装ROS时出现的<下列软件包有未满足的依赖问题>
下列软件包有未满足的依赖关系:ros-melodic-desktop-full : 依赖: ros-melodic-desktop 但是它将不会被安装依赖: ros-melodic-perception 但是它将不会被安装依赖: ros-melodic-simulators 但是它将不会被安装依赖: ros-melodic-urdf-sim-tutorial 但是它将不会被安装E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
2023-12-20 13:47:42
1686
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人