5 低头走路,抬头看天

尚未进行身份认证

Time to waste, not reduce efficiency

等级
TA的排名 2w+

notify和unlock的顺序

虚假唤醒即使没有线程向条件变量发出信号,线程也可能从等待状态中唤醒。注:虚假唤醒很容易被人误解为:如果有多个消费者,这些消费者可能阻塞在同一位置。当生产者通知not empty时,duque立即被第一个被唤醒的消费者清空,则后面的消费者相当于时被虚假唤醒了。这种情况完全可以通过使用signal而非broadcast解决。signal只会唤醒某个线程,唤醒的依据为等待线程的优先级,若优先级相同...

2020-01-15 00:43:26

头文件规则

头文件中只可以放置函数声明,不可以放置函数定义吗?先分析下面的程序:// a.h#ifndef __a_h__#define __a_h__void funcA(void); // 声明void funcA(void) // 定义{}#endif// b.h#ifndef __b_h__#define __b_h__void funcB(void);#endi...

2020-01-08 17:25:53

include头文件和前置声明

两个原则第一个原则是,如果使用的仅仅是一个类的指针或者引用,没有使用这个类的具体对象(非指针),也没有访问到类的具体成员,那么前置声明就可以了。因为指针这一数据类型的大小是特定的,编译器可以获知。第二个原则应该是,尽量在CPP文件中包含头文件,而非在头文件中。假设类A的一个成员是是一个指向类B的指针,在类A的头文件中使用了类B的前置声明并编译成功,那么在A的实现中我们需要访问B的具体成...

2020-01-03 12:03:30

C++模板中typename和class的区别

template与template一般情况下这两个通用,但有一个特例,就是当 T 是一个类,而这个类又有子类(假设名为 innerClass) 时,应该用 template:typename T::innerClass myInnerObject;这里的 typename 告诉编译器,T::innerClass 是一个类,程序要声明一个 T::innerClass 类的对象,而不是声明 T...

2019-12-13 11:24:43

C++关于NULL、0、nullptr

一 关于NULL、0、nullptr1 在C语言中NULL被定义为:一个void* 指针,指向的地址为0。2 而在C++中,NULL会被定义为03 C++11引入了nullptr 来表示空指针//func1int mycall(char *a, char *b){ cout<<"char pointer!"<<endl;}//func2int my...

2019-12-11 16:08:39

右值引用与转移语义

新特性的目的右值引用 (Rvalue Referene) 是 C++ 新标准 (C++11, 11 代表 2011 年 ) 中引入的新特性 , 它实现了转移语义 (Move Sementics) 和精确传递 (Perfect Forwarding)。它的主要目的有两个方面:消除两个对象交互时不必要的对象拷贝,节省运算存储资源,提高效率。能够更简洁明确地定义泛型函数。左值与右值的定义C++...

2019-12-10 12:17:06

软连接和硬链接的区别

1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。【硬连接】硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种...

2019-10-14 14:46:36

leetcode64. 最小路径和

题目给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。思路直接修改原始数组实现class Solution {public: int minP...

2019-09-17 15:27:50

leetcode 54. 螺旋矩阵

题目给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例 2:输入:[ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12]]输出:...

2019-09-16 16:06:27

leetcode103. 二叉树的锯齿形层次遍历

题目给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层次遍历如下:[ [3], [20,9], [15,7]]思路双栈,一个栈先插左子树再插右...

2019-09-02 17:11:17

leetcode147. 对链表进行插入排序

题目插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。重复直到所有输入数据插入完为止。实现/** * Definition for singly-linked list. * struct ListNode { * int val; * Li...

2019-08-30 17:24:20

leetcode129. 求根到叶子节点数字之和

题目给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明: 叶子节点是指没有子节点的节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 25解释:从根到叶子节点路径 1->2 代...

2019-08-29 21:27:05

leetcode 106. 从中序与后序遍历序列构造二叉树

题目根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树: 3 / \ 9 20 / \ 15 7实现/** * Definition for a binary tre...

2019-08-29 21:24:07

leetcode105. 从前序与中序遍历序列构造二叉树

题目根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7实现/** * Definition for a binary tree...

2019-08-29 21:22:30

leetcode112. 路径总和

题目给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 ...

2019-08-29 21:20:18

leetcode113. 路径总和 II

题目给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ ...

2019-08-29 21:18:44

leetcode114. 二叉树展开为链表

题目给定一个二叉树,原地将它展开为链表。例如,给定二叉树 1 / \ 2 5 / \ \3 4 61 \ 2 \ 3 \ 4 \ 5 \ 6实现/** * Definition for a binary tree node. * st...

2019-08-29 21:15:38

leetcode94. 二叉树的中序遍历

题目给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]进阶: 递归算法很简单,你可以通过迭代算法完成吗?思路参考【数据结构】二叉树(前、中、后)序遍历的递归与非递归算法实现/** * Definition for a binary tree node. * struct...

2019-08-29 21:13:29

leetcode144. 二叉树的前序遍历

题目给定一个二叉树,返回它的 前序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3]进阶: 递归算法很简单,你可以通过迭代算法完成吗?思路参考【数据结构】二叉树(前、中、后)序遍历的递归与非递归算法实现/** * Definition for a binary tree node. * s...

2019-08-29 21:09:25

leetcode145. 二叉树的后序遍历

题目给定一个二叉树,返回它的 后序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1]进阶: 递归算法很简单,你可以通过迭代算法完成吗?思路参考【数据结构】二叉树(前、中、后)序遍历的递归与非递归算法实现/** * Definition for a binary tree node. * stru...

2019-08-29 21:07:12

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。