- 博客(22)
- 收藏
- 关注
原创 C++老版课程的知识总结-函数模版与类模板
类模板用于实现类所需数据的类型参数化,类模板在表示如数组、表、图等数据结构显得特别重要,这些数据结构的表示和算法不受所包含的元素类型的影响。所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。在调用的地方对参数替换后的代码进行编译。告诉编译器产生汇编语言文件后停止编译,产生的汇编语言文件扩展名为.s。3 如果函数模板可以产生一个更好的匹配,那么选择模板。编译器并不是把函数模板处理成能够处理任意类的函数。编译器从函数模板通过具体类型产生不同的函数。
2024-01-02 12:18:44
385
原创 【c++primerplus】【11】【使用类】
程序将使用构造函数Stonewt(double)来创建一个临时的Stonewt对象,并将19.6作为初始化值,随后采用逐成员赋值方式将该临时对象的内容复制到myCat中,这一过程称为隐式转换,因为它是自动进行的,而不需要显示强制类型转换。然而,当程序员拥有更丰富的C++经验时,将发现这种自动特性并非总是合乎需要的,因为这会导致意外的类型转换。如果按值传递Time对象,代码的功能将相同,但传递引用,速度将更快,使用的内存将更少。虽然operator*()函数不是成员函数,但它与成员函数的访问权限相同。
2023-12-27 18:46:13
336
原创 【linux私房菜】【10】【认识与学习BASH】
因此,我们使用2>&1。${变量#关键词} 若变量内容从头开始的数据符合【关键词】,则将符合的最短数据删除。${变量##关键词} 若变量内容从头开始的数据符合【关键词】,则将符合的最短数据删除。${变量%关键词} 若变量内容从尾向前的数据符合【关键词】,则将符合的最短数据删除。${变量%关键词} 若变量内容从尾向前的数据符合【关键词】,则将符合的最短数据删除。2>> 以累加的方法将错误的数据输出到指定的文件或设备上;
2023-12-25 19:34:44
372
原创 【c++primerplus】【10】【对象和类】
最后,程序可以创建临时对象来完成特定的操作,在这种情况下,程序将在结束对该对象的使用时自动调用其析构函数。初始化对象数组的方案是,首先使用默认构造函数创建数组元素,然后花括号中的构造函数将创建临时对象,然后将临时对象的内容复制到相应的元素中。在默认情况下,将一个对象赋给同类型的另一个对象时,C++将源对象的每个数据成员的内容复制到目标对象中相应的数据成员中。当对象这种自动变量被放在栈中,因此最后创建的对象将最先被删除,最先创建的对象将最后被删除。当程序创建未被显示初始化的类对象时,总是调用默认构造函数。
2023-12-25 16:27:38
801
原创 【韦神嵌入式linux】【2】Makefile的使用
gcc -c -o c.o c.c -MD -MF c.d //编译c.o 把依赖写入文件c.d。个目标完整地放在文件前面,这时可以在文件的前面直接放置目标,在后面再完善它的依赖与命令。的值附加在每一个独立文件名的后面,完成后将文件名串联起来,它们之间用单个空格隔开。的值附加在每一个独立文件名的前面,完成后将文件名串联起来,它们之间用单个空格隔开。’中每一个文件名的路径部分,文件名的路径部分包括从文件名的首字符到最后一个斜杠(的结果是一列和格式匹配的且真实存在的文件的名称,文件名之间用一个空格隔开。
2023-12-24 18:18:16
981
原创 【c++primerplus】【循环和关系表达式】
检测到EOF后,cin将两位(eofbit 和 failbit)都设置为1,可以通过成员函数eof()来查看eofbit是否被设置;当cin出现在需要bool值的地方(如在while循环的测试条件中)时,该转换函数将被调用。cin在读取char值时,与读取其他基本类型一样,cin将忽略空格和换行符。更复杂的是,发送给cin的输入被缓冲。(c++11)基于范围的for循环:这简化了一种常见的循环任务:对数组(或容器类,如vector和array)的每个元素执行相同的操作。三种“二维数组”方式。
2023-12-23 19:02:38
407
1
原创 算法讲解-左神 【7】两数相加
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。的链表,表示两个非负的整数。它们每位数字都是按照。请你将两个数相加,并以相同形式返回一个表示和的链表。的方式存储的,并且每个节点只能存储。
2023-12-23 15:48:25
367
1
原创 【c++primerplus】【复合类型】
要使用string类,必须在程序中包含头文件string。string类位于名称空间std中,因此您必须提供一条using编译指令,或者使用std::string来引用它。可以使用C风格字符串来初始化string对象,可以使用数组表示法来访问存储在string对象中的字符。C++11:string a {“你好”};//列表初始化C++11新增原始字符串,字符表示的就是自己。
2023-12-20 21:11:04
382
原创 C++老版课程的知识总结(2)
C++编译器在编译过程中使用常指针作为引用的内部实现,因此引用所占用的空间大小与指针相同。若返回栈变量,不能成为其它引用的初始值。若返回静态变量或全局变量,可以成为其他引用的初始值,即可作为右值使用,也可作为左值使用。在C++中可以声明const引用,const Type& name = var;const引用让变量拥有只读属性。引用的语法:Type& name = var;普通引用必须要初始化;引用在C++中的内部实现是一个常指针;
2023-12-18 16:49:40
391
原创 C++老版课程的知识总结(1)
为了避免,在大规模程序的设计中,以及在程序员使用各种各样的C++库时,这些标识符的命名发生冲突,标准C++引入了关键字namespace(命名空间/名字空间/名称空间/名域),可以更好地控制标识符的作用域。在C++中依然支持register关键字,C++编译器有自己的优化方式,不使用register也可能做优化,C++中可以取得register变量的地址。1、直接指定标识符。完整语句如下: std::cout << std::hex << 3.4 << std::endl;
2023-12-17 19:13:07
28
1
原创 C++ 默认参数
所以,为了避免冗余和混淆,C++规定默认参数只能在函数的声明中指定一次,而不是同时在函数的声明和定义中指定。如果需要更改默认参数值,只需在函数的声明中进行修改,而不需要修改函数的定义。当你在函数声明中提供默认参数时,编译器会将默认参数值记录在函数的声明中,以便在函数调用时使用。在函数定义中,你提供的默认参数值不会用于函数的调用,因为在函数定义时编译器已经知道了函数的完整信息,包括默认参数的值。在函数定义中再次提供默认参数值是多余的,因为这些值已经在函数声明中确定了。
2023-12-15 11:49:44
26
原创 算法讲解-左神 【4】二分搜索
或者返回索引 5, 其峰值元素为 6。3 是峰值元素,你的函数应该返回其索引 2。你的函数可以返回索引 1,其峰值元素为 2;
2023-12-13 19:40:54
23
1
原创 算法讲解-左神【1】 二进制和位运算
由正常的数到计算机表示数的转化过程:转成正数、减一、取反。由计算机表示的数到正常的数的过程:取反、加一、判断正负。
2023-12-11 09:35:09
30
原创 【每日学习记录】【1】【20231207】C++transform()函数用法
C++transform()函数用法(将某操作应用于指定范围的每个元素)transform函数的作用是:将某操作应用于指定范围的每个元素。transform函数有两个重载版本first1是第一个容器的首迭代器,last1为第一个容器的末迭代器,first2为第二个容器的首迭代器,result为存放结果的容器,binary_op为要进行操作的二元函数对象或sturct、class。transform(first1,last1,first2,result,binary_op);first1是第一个
2023-12-07 18:05:12
125
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人