2021年3月

c++

rtti

  • typeid(lvalue) -> type_info

decltype auto

  • 都是类型推导
  • decltype(a) b = 1;

move

        template <typename T>
        typename remove_reference<T>::type&& move(T&& t)
        {
            return static_cast<typename remove_reference<T>::type&&> (t);
        }
  • 模板的折叠, 让move, 可以接收左值和右值
  • remove_reference的多个模板, + 模板参数推导, 抽离出不含引用的类型
  • static_cast, 允许(右->左值)的强制类型转换

shared_ptr

  • stl中, 计数器是atom, 故内存释放是线程安全的
  • 指针无任何保护, 多线程读写不安全
  • 为避免循环引用, 引入了weak_ptr, 不计数, 尝试持有ptr
  • class CA { shared_ptr<CB> m_p }; class CB { shared_ptr<CA> m_p };

虚表

  • 类的虚表, 编译时就确定了.
  • 虚表的指针, 位于对象的开头.



算法

空间和时间, 是永恒的主题

双指针

快慢指针

  • 常用于链表
  • 类似脑筋急转弯

左右指针

  • 常用于数组, 常是有序数组

滑动窗口

框架:
1. left = right = 0, 左开右闭
2. 不断增加right, 直到符合要求
3. 转而增加left, 知道不符合要求

滑动窗口

二分搜索

左右开闭
收缩区间, 依据判断条件

动态规划

随笔

先暴力找出答案;
dp数组有一些规律模板
共有几个状态
穷举状态迁移
找出重叠问题


优化状态迁移, 去除不必要的子问题

随笔

  • 放不放的选择, 比放几个的选择要好
  • 边界问题, 最好抽象出来, 大不了用num[i - 1]
  • 在递归中, -1, 可以替代循环无数次
  • 乘法的边界时sqrt(n)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值