
C++
文章平均质量分 61
Polymer to C++
重视细节,但不要沉迷于细节
展开
-
【C++】二叉树前序、中序、后序遍历(非递归写法)
1. 前序遍历非递归写法遍历规则:左 + 右 + 根class Solution {public: vector<int> preorderTraversal(TreeNode* root) { vector<int> ret; if(root == nullptr) return ret; TreeNode* cur = root; stack<TreeNode*>原创 2021-08-12 10:17:10 · 327 阅读 · 0 评论 -
【C++】为什么一般建议将基类的析构函数设置为虚函数
目录原创 2021-07-30 16:10:31 · 182 阅读 · 0 评论 -
【C++】什么是菱形继承?菱形继承存在的问题?什么是虚拟继承?
目录原创 2021-07-29 22:11:37 · 281 阅读 · 0 评论 -
在地下室里放着n种颜色的手套,手套分左右手,但是每种颜色的左右手手套个数不一定相同。
描述在地下室里放着n种颜色的手套,手套分左右手,但是每种颜色的左右手手套个数不一定相同。A先生现在要出门,所以他要去地下室选手套。但是昏暗的灯光让他无法分辨手套的颜色,只能分辨出左右手。所以他会多拿一些手套,然后选出一双颜色相同的左右手手套。现在的问题是,他至少要拿多少只手套(左手加右手),才能保证一定能选出一双颜色相同的手套。给定颜色种数n(1≤n≤13),同时给定两个长度为n的数组left,right,分别代表每种颜色左右手手套的数量。数据保证左右的手套总数均不超过26,且一定存在至少一种合法方案。原创 2021-07-21 23:23:01 · 439 阅读 · 0 评论 -
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)
剑指Offer:表示数值的字符串 LeetCode链接bool isNumber(string s){ int begin = 0; bool abool = false; while (s[begin] == ' ') { begin++; } if (s[begin] == '+' || s[begin] == '-') begin++; while (isdigit(s[begin])) { begin++; abool = true; } if (s[b原创 2021-06-30 00:35:21 · 284 阅读 · 0 评论 -
【C++入门】malloc、new与free、delete的区别
目录原创 2021-06-25 17:50:15 · 744 阅读 · 0 评论 -
const与static的区别
对于C/C++来说,就是只读的意思,只在声明中使用,意即其所修饰的对象为常量((immutable)),它不能被修改,并存放在常量区。一般有两个作用,规定作用域和存储方式(静态存储)。对于局部变量,static规定其为静态存储方式每次调用的初始值为上一次调用后的值,调用结束后存储空间不释放;对于全局变量,如果以文件划分作用域的话,此变量只在当前文件可见,对于static函数也是如此。static修饰的变量如果没有初始化,则默认为0.原创 2021-06-25 00:56:34 · 16533 阅读 · 0 评论 -
【C++入门】类的默认成员函数
目录1.类的6个默认成员函数2.构造函数3.析构函数4.拷贝构造函数5.赋值操作符重载6.默认拷贝函数与赋值运算符重载的问题7.const成员函数8.取地址及const取地址操作符重载1.类的6个默认成员函数如果一个类中什么成员都没有,则成为空类。空类中真的什么都没有吗?答案是否定的,任何一个类在定义时我们什么都不写的情况下,都会自动生成下面6个默认成员函数。class Date{};2.构造函数对于Date类,可以通过SetDate公有方法给对象设置内容,但如果每次创建对象都调用该方法来初始原创 2021-06-16 14:17:40 · 423 阅读 · 0 评论