这是一篇关于左值,右值,完美转发,引用折叠的文章。 什么是左值,什么是右值? 左值:具有生命周期的,具有名称的值,即为它有一个具体的内存空间。 右值:没有生命周期,也成为将亡值。不指向稳定内存地址的匿名值。 基于上述特性,我们也可以用取地址符号判断,能够取到地址的是左值,不能取到的是右值。 左值与右值的理解 从字面理解,无非是表达式等号左边的值为左…
贪心理论 由局部最优推导到全局最优,这就是贪心的策略。 在什么时候使用贪心算法?可以试一试贪心,若无法证伪,则使用。 经典题目 455 分发饼干 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i](,)这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸…
理论基础 回溯法的本质是穷举,它在解决以下问题中经常会被用到。 组合问题:N个数里面按一定规则找出k个数的集合 切割问题:一个字符串按一定规则有几种切割方式 子集问题:一个N个数的集合里有多少符合条件的子集 排列问题:N个数按一定规则全排列,有几种排列方式 棋盘问题:N皇后,解数独等等 组合和排列的区别 组合不强调元素顺序,对于组合来说{1,2}和…
前言 lambda表达式时C++11时引入的特性 lambda又称匿名函数 lambda本质是一个特殊的,匿名的类类型。它是一个带有operator()的类,即仿函数。 仿函数(functor), 就是使得一个类的使用看上去像一个函数。其实现为类中实现一个operator(), 这个类就有了类似函数的行为,即为一个仿函数类。 lambda表达式的基…