摘要: lambda函数在递归调用时,要写清楚函数的类型,而不能用auto,且需要捕获std::function<void(TreeNode*)> DFS=[&](TreeNode* node){DFS(node->left);DFS(node->right);}; 阅读全文
posted @ 2021-12-07 20:15 80k 阅读(36) 评论(0) 推荐(0)
摘要: 通过定义d[],d[n]表示长度为n+1的数组尾部数字最小值(最小值更容易得到更长的数组),通过不断更新d[],得到最长递增子序列 阅读全文
posted @ 2021-12-07 20:15 80k 阅读(35) 评论(0) 推荐(0)
摘要: 当其中一个数组元素各不相同时,最长公共子序列问题可以转化为最长上升子序列问题。 阅读全文
posted @ 2021-12-07 20:14 80k 阅读(34) 评论(0) 推荐(0)
摘要: 隐式转换被设计得尽可能避免损失精度 static_cast 任何具有明确定义的类型转换,只要不包含底层const,都可以使用static_cast;const_cast只能改变运算对象的底层const,不能改变表达式的类型;reinterpret_cast通常为运算对象的位模式提供较低层次上的从新解 阅读全文
posted @ 2021-12-07 20:13 80k 阅读(87) 评论(0) 推荐(0)
摘要: 对数组执行sizeof运算得到整个数组所占空间的大小(不会把数组转换成指针处理)对string或vector对象执行sizeof运算只返回该类型固定部分的大小,不会计算对象中的元素占用了多少空间 阅读全文
posted @ 2021-12-07 20:13 80k 阅读(38) 评论(0) 推荐(0)
摘要: c++11新标准允许使用花括号括起来的初始值列表作为赋值语句右侧的运算对象vector<int> v1;v1={0,1,2,3,4,5,6};赋值运算符满足右结合律,这一点与其他二元运算符不太一样。赋值运算符返回其左侧运算对象。 阅读全文
posted @ 2021-12-07 20:12 80k 阅读(50) 评论(0) 推荐(0)
摘要: 表达式求值之前,小整数类型的运算对象被提升成较大的整数类型bool值不应该参与运算bool b=true;bool b2=-b;//b2是true,true->1->-1->(-1!=0)->truem和n是整数,则m/n向0取整(舍弃小数部分),m%n与m符号相同(!!!),(m/n)*n+m%n 阅读全文
posted @ 2021-12-07 20:11 80k 阅读(45) 评论(0) 推荐(0)
摘要: decltype作用于左值表达式时得到一个引用类型。int *p;decltype(*p);//结果为int &decltype(&p);//结果为int ** 阅读全文
posted @ 2021-12-07 20:11 80k 阅读(37) 评论(0) 推荐(0)
摘要: 多维数组的外层范围for语句的循环控制变量必须用引用,否则会被退化成指针 using int_array = int[4];//类型别名的声明typedef int int_array[4];//等价的typedef声明using myRef = int&;//引用类型的别名typedef int& 阅读全文
posted @ 2021-12-07 20:10 80k 阅读(28) 评论(0) 推荐(0)
摘要: string可用字符串字面值或以'\0'结尾的字符数组进行初始化 阅读全文
posted @ 2021-12-07 20:09 80k 阅读(31) 评论(0) 推荐(0)