玩命加载中 . . .

  勿以浮沙筑高台
博学之,审问之,慎思之,明辨之,笃行之。——《礼记·中庸》
525-连续数组 525-连续数组
LeetCode 525. 连续数组给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。 示例 1: 输入: nums = [0,1] 输出: 2 说明: [0, 1] 是具有相同数量
2022-09-18
34-考虑lambda而非bind 34-考虑lambda而非bind
考虑以下C++14的lambda使用,它返回其实参是否在最小值(lowVal)和最大值(highVal)之间的结果,其中lowVal和highVal是局部变量 auto betweenL = [lowVal, highVal](co
2022-09-18
33-lambda表达式的完美转发 33-lambda表达式的完美转发
在lambda的形参中可以使用auto关键字就可以使用泛型lambda,这样在闭包类中的operator()函数是一个函数模版 auto f = [](auto x){ return func(normalize(x)); 
2022-09-18
31-避免使用默认捕获模式 31-避免使用默认捕获模式
按引用捕获会导致闭包中包含了对某个局部变量或者形参的引用,变量或形参只在定义lambda的作用域中可用。如果该lambda创建的闭包生命周期超过了局部变量或者形参的生命周期,那么闭包中的引用将会变成悬空引用 假如我们有元素是过滤函数(fil
2022-09-18
03-理解decltype 03-理解decltype
相比模板类型推导和auto类型推导,decltype只是简单的返回名字或者表达式的类型 const int i = 0; //decltype(i)是const int bool f(const Widget
2022-09-18
02-理解auto类型推导 02-理解auto类型推导
auto类型推导和模板类型推导有一个直接的映射关系。它们之间可以通过一个非常规范非常系统化的转换流程来转换彼此 如果有这样的模板 template<typename T> void f(ParmaType param); 调用形式为
2022-09-18
01-理解模板类型推导 01-理解模板类型推导
考虑这样的函数模板 template<typename T> void f(ParamType param); f(expr); //从expr中推导T和ParamType 有三种情况需
2022-09-18
1296-划分数组为连续数字的集合 1296-划分数组为连续数字的集合
LeetCode 1296. 划分数组为连续数字的集合给你一个整数数组 nums 和一个正整数 k,请你判断是否可以把这个数组划分成一些由 k 个连续数字组成的集合。如果可以,请返回 true;否则,返回 false。 示例 1: 输入:n
2022-09-09
611-有效三角形的个数 611-有效三角形的个数
611. 有效三角形的个数给定一个包含非负整数的数组 nums ,返回其中可以组成三角形三条边的三元组个数。 示例 1: 输入: nums = [2,2,3,4] 输出: 3 解释:有效的组合是: 2,3,4 (使用第一个 2) 2,3,
2022-09-08
43-模板化基类 43-模板化基类
学习处理模板化基类内的名称如果基类是个模板类,直接调用基类中的方法会不能编译 class A { public: void func() { cout << "class A" << en
2022-08-27
37-绝不重新定义缺省参数 37-绝不重新定义缺省参数
绝不重新定义继承而来的缺省参数值派生类在重写虚函数的时候,如果修改了缺省参数,实际运行的时候使用的还是基类的虚函数的缺省参数 class Shape { public: virtual void draw(int i =
2022-08-27
36-绝不重新定义非虚函数 36-绝不重新定义非虚函数
绝不重新定义继承而来的non-virtual函数非虚函数实行静态绑定,如果派生类重新定义了非虚函数,将会覆盖基类的版本 这样当基类的指针指向派生类对象时,调用的就是基类的版本,因为是静态绑定,所以调用哪个版本取决于指针的静态类型 class
2022-08-27
1 / 43