- 博客(12)
- 收藏
- 关注
原创 LeetCode 26.删除有序数组中的重复项
看到这题第一时间想到的是用n存储元素出现次数,出现次数为2就删除该元素,当时想到这里就很不对劲了,时间复杂度肯定不会低,但这猪脑也想不出其他办法了.,不是要不重复元素个数吗,那另开一个数组将元素存下来,就完美解决了检索过多的问题,一遍检索就够了.总结:题目像是在引导去删除重复元素,而将思路转换一下,去"增加"元素,思路就会明了很多.题解的思路就很明了了,题目要什么就。,返回删除后数组的新长度。删除重复出现的元素,使每个元素。去重后,返回唯一元素的数量。之后的剩余元素可以忽略。
2025-10-28 16:44:49
213
原创 拷贝构造的使用
在 C++ 中,当类包含指针成员且使用浅拷贝时,确实会出现同一块堆内存被多次释放的问题,进而导致编译器报错(通常表现为运行时错误,如double free)。函数以值方式返回局部对象(如 Person fun() 中,返回时会拷贝局部对象生成临时对象,现代编译器可能通过 RVO 优化省略此调用)。第二个对象析构时,会尝试释放已被释放的内存,导致重复释放,触发运行时错误。深拷贝通过复制堆内存内容,使每个对象拥有独立内存,避免重复释放问题。浅拷贝导致多个对象共享同一块堆内存,析构时重复释放,引发错误。
2025-10-25 10:44:46
147
原创 对象的初始化和清理
构造函数和析构函数注意:编译器提供的默认构造函数和析构函数是空实现构造函数:构造函数:是在对象创建时,由编译器自动调用,给对象成员变量赋值,无须手动调用析构函数:主要用于在对象销毁前系统自动调用,执行一些清理工作构造函数语法:类名 (){}1、没有返回值,也不写void2、函数名称与类名一致3、构造函数可以有参数,因此可以有重载4、程序在 调用对象 时,会自动调用构造函数,无须手动调用,且只会调用一次析构函数语法:~类名() {}1、析构函数,没有返回值也不写void。
2025-10-24 15:32:58
491
原创 函数的默认参数
在同一作用域上,函数名相同,函数参数的(类型 顺序 数量)只要有一个不同就是重载。重载与参数默认值一起使用时注意二义性问题。:函数名可以相同,提高复用性。:返回值类型不会影响重载。
2025-10-24 12:33:38
145
原创 NEW关键字
C++ 中利用 new 操作符在堆区开辟数据。1、堆区开辟的数据,由程序员手动开辟,手动释放,释放利用操作符 delete。2、语法:new 数据类型3、利用 new 创建的数据,会返回该数据对应的类型的指针。
2025-10-24 11:31:51
216
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅