- 博客(33)
- 收藏
- 关注
原创 c++指针悬空用nullptr还是NULL
在C++中,指针悬空(dangling pointer)是指一个指针指向了曾经有效但现在已经被释放或重新分配的内存。
2024-05-28 23:17:16 217
原创 c++ set/multiset容器
在C++标准库中,set和multiset是两种非常有用的关联容器,它们包含唯一元素(对于set)或可重复元素(对于multiset),并且默认情况下这些元素都是自动排序的。它们通过键(即存储的元素本身)来存储和检索元素,因此这些容器中的元素都是唯一的(对于set)或者可以有重复的(对于multiset)。
2024-05-26 21:39:25 468
原创 c++ list容器
std::list是 C++ 标准库中的一个双向链表容器。与std::vector(动态数组)和std::deque(双端队列)不同,std::list的元素在内存中不是连续存储的,而是分散存储并通过节点进行连接。这使得std::list在插入和删除操作上通常比std::vector和std::deque更高效,尤其是在列表的中间位置
2024-05-25 23:00:05 631
原创 c++ queue容器
在C++标准库中,std::queue是一个容器适配器,它提供了队列(FIFO - First In First Out)的数据结构。队列是一种特殊的线性数据结构,只允许在表的前端(front)进行删除操作,而在表的后端(back)进行插入操作
2024-05-23 22:44:33 670
原创 c++ stack容器
在C++中,std::stack是一个标准模板库(STL)中的容器适配器,它提供了一种后进先出(LIFO, Last In First Out)的数据结构。std::stack容器适配器基于底层容器(默认是std::deque,但也可以由用户指定)进行封装,只暴露了栈的基本操作接口。
2024-05-22 22:59:25 315
原创 c++ 右移操作符对整形操作
在C++中,右移操作符(>>)对于整数类型(如int、long、short等)的行为在二进制层面上主要取决于该整数是否是有符号的。
2024-05-20 22:26:18 344
原创 c++ 排序算法merge使用要求
在C++中,std::merge是一个算法,它用于合并两个已排序的范围(例如数组或容器中的一部分)到一个新的范围中。这个函数在头文件中定义。
2024-05-17 23:26:17 314
原创 c++11新特性 范围for循环 怎么用
范围for循环(Range-based for loop)是C++11引入的一种新特性,它提供了一种更简洁、更直观的方式来遍历容器(如std::deque、std::vector、std::list等)或数组中的所有元素。
2024-05-16 23:42:43 248
原创 c++ vector容器
在C++中,vector是一个动态数组,它可以根据需要自动增长和缩小。以下是对vector的基本概念和常用操作的详细解释:
2024-05-14 23:11:43 1149
原创 c/c++对于char*的理解(联合string容器)
在C和C++中,char*是一个指向字符(char)的指针。它经常被用来处理C风格的字符串,这种字符串是以空字符(\0)结尾的字符数组。
2024-05-13 22:29:24 391
原创 关于继承~
动物有猫、狗, 猫又分为加菲猫、布偶猫......;狗又有哈士奇、德国牧羊犬......我们发现,下一类除了拥有上一类的共性之外,还拥有自己的特性。于是我们可以利用继承的方式来减少重复的代码
2024-05-04 21:21:42 621
原创 c++运算符的结合性和优先级
结合性定义了当一个表达式中出现多个相同优先级的运算符时,这些运算符应该如何分组。C++中的大多数运算符都是左结合的,即从左到右分组。但也有一些运算符是的,例如赋值运算符(=)、条件运算符(?和列表初始化运算符(使用大括号初始化对象,如例如,在表达式a = b = c;中,由于赋值运算符是右结合的,因此它首先计算b = c,然后将结果赋值给a。
2024-05-01 22:20:54 423
原创 运算符重载
概念:对原有的运算符重新定义,赋予其另一种功能,以适应不同的数据类型。有些运算符重载可分为成员函数重载和全局函数重载,第一个操作数是调用运算符的对象,顺序不能搞反,操作数的顺序可任意。
2024-04-30 22:06:05 513
原创 什么是继承
继承是面向对象编程中的一个核心概念,它指的是在一个已存在的类(称为基类或父类)的基础上,创建出一个新的类(称为派生类或子类),派生类继承基类的成员变量和成员函数,并且可以添加新的成员变量和成员函数或重写已有的函数。这样,派生类就可以获得基类的数据和方法的特性,并且可以进一步扩展或修改这些特性以适应新的需求。然而,继承也有其潜在的缺点,比如增加了类之间的耦合性,可能导致代码的复杂性和维护成本的增加。:派生类可以在继承基类的基础上添加新的功能,从而扩展了基类的能力。的一种,但它们又有各自独特的行为和属性。
2024-04-26 23:10:45 307 1
原创 c++对象模型和this指针
属于类的对象上:成员变量不属于类的对象上:成员函数,静态变量,静态函数再补充的概念:空对象在内存中默认占一个字节,便于分辨不同的空对象,每个空对象在内存中占据的内存应是独一无二的。
2024-04-25 09:22:45 476 1
原创 对象的初始化和清理
生活中我们购买的电子厂品基本都会有出厂设置,当我们不用它们的时候就会删除自己的信息保证安全。c++面向对象来源于生活,每个对象都会有出厂设置以及销毁对象前的一些清理数据的工作。
2024-04-21 21:15:48 456 1
原创 尾递归是什么
需要注意的是,尾递归的形式需要满足一定条件,即最后一个return语句必须是单纯的递归函数调用(或返回结果),不能包含其他计算或操作。尾递归是一种特殊的递归形式,它发生在函数的最后一个语句中,使得函数调用只需要一个栈帧。尾递归的好处在于它避免了递归嵌套过程中创建多个栈帧以保存函数调用的相关信息,从而减少了内存的使用。然而,需要注意的是,并非所有的递归问题都可以使用尾递归来解决,需要根据问题的具体情况来分析和设计。总之,尾递归是一种优化递归调用的技术,通过减少栈帧的使用来降低内存负担,提高程序的性能。
2024-04-12 23:18:51 355
原创 c++虚函数的介绍
虚函数是C++面向对象编程中的一个重要概念,主要用于实现多态性。当我们想要通过基类指针或引用来调用派生类中的函数时,就需要使用虚函数。总之,虚函数是C++中实现多态性的重要手段,它允许我们通过基类指针或引用来调用不同派生类中的同名函数,从而实现灵活的代码组织和复用。
2024-04-11 21:53:27 635 1
原创 c++类的友元(函数,类)
类的友元(Friend)是C++中的一个特性,它允许一个类或函数访问另一个类的私有(private)和保护(protected)成员。通常,类的私有和保护成员只能被该类的成员函数或友元访问,而不能被类的外部代码直接访问。例如,当需要实现两个类之间的紧密耦合,或者需要让某个非成员函数能够直接访问类的内部状态时,可以考虑使用友元。如果一个类被声明为另一个类的友元,那么它可以访问该类的所有成员,包括私有和保护成员。同样,如果一个函数被声明为某个类的友元,那么该函数也可以访问该类的所有成员。因此,它们都可以访问。
2024-04-10 22:30:25 512 1
原创 c/c++vector函数
是 C++ 标准库中的一个动态数组模板类,它可以存储任意类型的对象,。使用可以方便地管理一组同类型的数据以下是如何使用。
2024-03-31 23:00:31 870 1
原创 C语言函数rand()
rand() 是 C 语言中的一个标准库函数,用于生成一个伪随机数。生成的随机数其实是一个伪随机数,它基于一个起始值(称为种子)并使用一个算法来生成后续的数。如果你需要生成一个指定范围内的随机数(例如,从 1 到 100),你可以对 rand() 的结果进行一些运算。请注意,由于 rand() 生成的是伪随机数,因此它不适用于需要高度随机性或安全性的场合(如密码学)。在这个例子中,rand() % 100 会生成一个 0 到 99 的随机数,然后加 1 将其范围变为 1 到 100。
2024-03-30 10:54:58 497
原创 打印1000以内的完全数
一个自然数恰好等于它除了自身以外的所有正因子之和。换句话说,如果一个数恰好等于它的真因子之和,则称该数为“完全数”。例如,6是一个完全数,因为6的正因子有1、2和3,而1+2+3=6。完全数自诞生以来,就吸引着众多数学家与业余爱好者去寻找。迄今为止,发现的完全数都具有一种特殊的数学性质。然而,关于完全数的存在性和数量,至今仍然是数学研究的一个重要课题。完全数,又称完美数或完备数,是一些特殊的自然数。
2024-03-08 22:44:26 253
原创 根据学生的成绩评定学生的等级,90(含)-100(含)分为A,80(含)-90分为B,70(含)-80分为C,60(含)-70分为D,60分以下为E。
评定学生成绩等级的代码以及beake和continue的区别
2024-03-06 22:11:55 309
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人