1.普通new 形式:int* p = new int; 此时不能通过p是否为nullptr来判断内存是否开辟成功,而是需要通过bad_alloc来捕获异常。
思路:分别使用两个指针p和q, 因为可能q->val==p->val时,此时要删除q所指向的节点,所以需要一个s指针记录q,防止发生断链。
函数重载概念: 用一个函数名定义不同的函数,当函数名和不同的参数搭配是函数的含义不同。
const修饰符的使用//const修饰变量为只读const int a = 10;a = 20;//是错误的赋值//指针变量 指针指向的内存 两个不同的概念char buf[] = "helloworld";//从左往右看,跳过类型,看修饰那个字符//如果是*,说明指针指...
关注点在于 count_fruit 的第三个参数,这样就省去了单独编写 count_apples 和 count_oranges 函数的麻烦。
我们发现派生类的析构函数并没有调用,这是有问题的,有可能会造成内存泄漏,而解决这个问题的办法就是将 Base 的析构函数定义为虚(virtual),
21.Go面向对象-方法值与方法表达式5 方法值与方法表达式在上一章节的案例中,我们调用结构体(类)中的方法,一般都是通过如下的方式:var dog Dogdog.Brak()var cat Catcat.Brak() 或者是指针变量,现在,在给大家补充另外一种...
文章目录一、Optional1.获取对象2.常用方法3.处理空指针的方法一、Optional1.获取对象Optional概述可能包含或不包含非null值的容器对象方法介绍image.png示例代码public class OptionalDemo1 { public static vo....
Given a linked list, determine if it has a cycle in it.
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.