
C++
文章平均质量分 53
ProLover98
这个作者很懒,什么都没留下…
展开
-
【力扣】725. 分隔链表
题目概述原题链接链表定义如下:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */思考过程根据题意,需要将原链表尽可能等分,设原链表长度为n,那么有三种情况n < k:即原链表长度小于要划分的组数,那么只有前面n组有元素且原创 2021-03-27 10:47:36 · 238 阅读 · 0 评论 -
【力扣】114. 二叉树展开为链表
题目概述原题链接树定义如下:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), rig原创 2021-03-19 11:15:16 · 225 阅读 · 0 评论 -
【力扣】654. 最大二叉树
题目概述原题链接相关节点定义:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr),原创 2021-03-16 15:05:53 · 261 阅读 · 0 评论 -
【力扣】面试题 04.03. 特定深度节点链表
题目概述原题链接树及链表定义如下:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; *//** * Definition for singly-linked lis原创 2021-03-15 20:34:54 · 218 阅读 · 0 评论 -
【力扣】589. N 叉树的前序遍历
题目概述给定一个 N 叉树,返回其节点值的前序遍历 ,N叉树节点定义如下:class Node {public: int val; vector<Node*> children; Node() {} Node(int _val) { val = _val; } Node(int _val, vector<Node*> _children) { val = _val; child原创 2021-03-13 16:19:39 · 327 阅读 · 0 评论 -
【C++】内联函数和const
内联函数内联函数表示:在函数返回值前加inline内联函数的声明和定义放在一起(都放在头文件中),否则编译器就会报错使用inline的情形:小函数,代码量在2-3行需要被频繁调用的函数(比如在循环中的函数)不使用inline的情形:代码量大的函数(超过20行)递归函数const针对于普通变量const表面声明的变量不可更改且同样具有生存空间(scope),需要进行初始化,不过可以在const前加extern表明该变量是定义在某处的全局变量const定义的变量未进行明原创 2020-07-06 20:26:12 · 268 阅读 · 0 评论 -
【C++】继承
继承语法B继承自A,那么B可以访问A的public成员变量,格式如下:class derived-class: access-specifier base-class,其中,访问修饰符 access-specifier 是 public、protected 或 private 其中的一个,base-class 是之前定义过的某个类的名称。如果未使用访问修饰符 access-specifier,则默认为 private。几乎不使用 protected 或 private 继承,通常使用 public 继承原创 2020-07-04 21:40:35 · 179 阅读 · 0 评论 -
【C++】初始化列表及对象组合
初始化列表实现实现方式:在构造函数()后跟:,然后给出变量的初始值,如下:完整的实现如下:头文件源文件main函数结果初始化列表与正常在构造函数{}初始化区别初始化列表可以初始任何类型数据初始化列表中的变量在构造函数之前完成,而构造函数{}中是在调用构造函数时完成声明与赋值关键区别在于如果需要对类对象进行申明,如何在{}中申明则需要单独写一个空的构造函数,而使用初始化列表就不会出现这种问题对象组合即类定义中使用其他类作为成员变量,如下:...原创 2020-07-04 15:21:57 · 290 阅读 · 0 评论 -
【C++】访问限制及类的表示(class & struct)
设置访问限制的目的用来限制类中哪些成员能够被哪些人访问public任何人都能访问private只有该类的成员函数能够访问protected只有该类以及继承于该类的类能够访问friend可以在定义中声明别人是朋友,那么朋友就可以访问private的内容示例C++中class和struct两者都用来表达类,基本相同,唯一的区别是class缺省参数默认是private,而struct默认是public,C++首选class...原创 2020-07-04 10:36:26 · 267 阅读 · 0 评论 -
【C++】动态内存分配(new & delete)
简单介绍为了能够实现动态内存分配,C++使用运算符new创建内存空间,用delete释放分配出去的空间new可以使用new分配以下三种类型的内存空间,即基本类型,类,数组new intnew classnamenew int[10],new classname[10]new所做的事情有三种:分配内存空间、调用构造函数(如果new的对象是类的话)以及提供分配空间的地址信息注:new 创建的是指针对象delete使用delete释放给定地址的内存空间(p代表需要收回空间的对象地址),以下原创 2020-07-03 13:47:32 · 743 阅读 · 0 评论 -
【C++】构造函数与析构函数
出现的原因以上程序在调用时需要首先赋予成员变量x和y一个初始值(即调用init函数),但由于粗心可能遗忘进行初始化,那么程序就会出现不确定性,为了避免这种情况的出现,C++引入构造器构造函数(constructor)性质与类同名没有返回类型在类对象被创建的时候自动调用构造函数构造函数允许传入参数那么在调用的时候需要使用如下方式使用:析构函数(destructor)性质与类同名,且在前面多出一个~没有返回类型析构函数不允许传入参数当对象要被消灭的时候(即超出对象定义范围)自动原创 2020-06-30 09:21:17 · 241 阅读 · 0 评论 -
【C++】C++系列知识学习
说明本博客主要用来记录C++学习过程中的重要知识点,不是很全,但尚可了解到一些基本知识,为便于管理,将不同知识点分开记录。相关系列博客C++面向对象编程基本框架析构函数原创 2020-06-29 23:33:28 · 165 阅读 · 1 评论 -
【C++】C++面向对象编程基本框架
基本框架头文件(*.h)主要是类的声明(相当于接口),包含public和private等相关成员变量,以售货机为例,可得到如下图所示代码。其中以 #开头的三行目的是定义宏且不重复定义(ifndef->if not def)源文件(.cpp,与.h相对应)源文件中主要用来实现头文件中声明的函数,部分头文件中声明的函数实现代码如下。main.cpp(主要用于“启动”程序)即main函数存在此文件中,便于不同类函数实现,基本可实现代码如下上图所示代码,输出为...原创 2020-06-29 14:56:35 · 818 阅读 · 0 评论