07 2023 档案

摘要:move和forward不进行任何操作,他们只负责类型转换。 move(x)等价于 static_cast<remove_reference_t<T>&&>(x)。因为T首先被剥夺引用,因此这里不会产生引用折叠,必定返回右值。 forward(x)等价于 static_cast<T&&> (x)。因 阅读全文
posted @ 2023-07-29 16:04 xuyv 编辑
摘要:由于c++ map和unordered_map的底层实现不同,因此对tuples 作为key的支持情况也不同。 map是二叉树实现的,因此tuple as key比较容易实现,c++也是支持的。 unordered_map是hash实现的,hash一个tuple就不太容易了,c++貌似不支持,同样值 阅读全文
posted @ 2023-07-26 17:38 xuyv 编辑
摘要:见:『 一文搞懂完全背包问题 』从0-1背包到完全背包,逐层深入+推导 - 零钱兑换 - 力扣(LeetCode) 0-1背包: dp[i][w] = minmax(dp[i-1][w], dp[i-1][w-wi] + vi) 完全背包 dp[i][w] = minmax(dp[i-1][w], 阅读全文
posted @ 2023-07-19 21:48 xuyv 编辑
摘要:它们通常来说可以成对出现,寻找某个值的range: [first, last)。 因为这个range符合数学意义的上界和下界,因此被命名为lower bound何upper bound。 如果这个值,存在,那么它其实等价于equal_range。 如1,2,2,3。val = 2,则lower_bo 阅读全文
posted @ 2023-07-05 14:58 xuyv 编辑
摘要:因为c++默认向下取整,因此向下取整通常不需要我们考虑。 考虑向上取整: 公式: ceil(A/B) = floor((A-1)/B) + 1 在c++里也可以写为 Up(a/b) = (a-1)/b + 1 等价于 (a+b-1)/b 可以想象为利用C++向下取整的方法,将a 加上一个b-1,则 阅读全文
posted @ 2023-07-05 07:41 xuyv 编辑

点击右上角即可分享
微信分享提示