摘要: 为什么要用仿函数 函数指针不灵活,难以与STL其他组件配合使用 Adapter 将一个class的接口转换为另一个class的接口,使原本因接口不兼容而不能合作的classes,可以一起运作 STL中的adapter function adapter 改变functor的接口,一般通过函数组合来体现 阅读全文
posted @ 2019-09-30 10:16 qbits 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 迭代器模式 提供一种方法,使之能够依序访问容器的各个元素,而又无需暴露容器的内部表述方式 STL设计的中心思想在于将 数据容器 和 算法 分离开,容器和算法分开设计,迭代器则是两者之间的胶着剂,一般迭代器的设计与容器细节相关,所以一般交给容器的设计者 迭代器相应型别 如何"获取迭代器的所指对象的型别 阅读全文
posted @ 2019-09-29 19:31 qbits 阅读(149) 评论(0) 推荐(0) 编辑
摘要: poj 2387 dijkstra c++ include include using namespace std; / poj 2387 link: http://poj.org/problem?id=2387 / int main(){ int T, N; / 赋值INF要注意一定要够大 / c 阅读全文
posted @ 2019-08-30 17:01 qbits 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 异或实现加法 另一种思路也可以使用 "01来实现三进制" ,根据真值表写出逻辑表达式 c++ class Solution { public: int singleNumber(vector& nums) { int a = 0, b = 0; for(int i = 0; i 阅读全文
posted @ 2019-08-17 17:54 qbits 阅读(807) 评论(0) 推荐(0) 编辑
摘要: "leetcode 146. LRU Cache" 阅读全文
posted @ 2019-08-16 11:05 qbits 阅读(555) 评论(0) 推荐(0) 编辑
摘要: 线段树模板题来源:https://www.lintcode.com/problem/segment tree build/description 201. 线段树的构造 202. 线段树的查询 203. 线段树的修改 247. 线段树查询 II 248. 统计比给定整数小的数的个数 c++ clas 阅读全文
posted @ 2019-07-30 23:24 qbits 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 基础 首先了解C++中存在于头文件\两个库函数:lower_bound和upper_bound lower_bound(start, end, val)返回在[start, end)中找到第一个大于等于val的 位置 upper_bound(start, end, val)返回在[start, en 阅读全文
posted @ 2019-07-23 17:08 qbits 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 最长公共子序列LCS "Lintcode 77. 最长公共子序列" LCS问题是求两个字符串的最长公共子序列 $$ dp[i][j] = \left\{\begin{matrix} & max(dp[i 1][j], dp[i][j 1]), s[i] != s[j]\\ & dp[i 1][j 1 阅读全文
posted @ 2019-07-23 11:20 qbits 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 题目 "leetcode:5. Longest Palindromic Substring" 解法 动态规划 时间复杂度$O(n^2)$,空间复杂度$O(n^2)$ 基本解法直接看代码 中心扩散法 时间复杂度$O(n^2)$,空间复杂度$O(1)$ 我们先假定以某点为中心向两端扩散,找到以该点为中心 阅读全文
posted @ 2019-07-22 23:45 qbits 阅读(1094) 评论(0) 推荐(0) 编辑
摘要: 互斥的硬件支持 中断禁用 单处理器机器中,并发进程不能重叠只能交替,因此保证互斥,主要保证进程不被中断就可以了 专用机器指令 + test_and_set compare_and_swap(obj, expected, desire)简称CAS,是一种乐观锁。 先检查obj所指的值是否和expect 阅读全文
posted @ 2019-07-18 11:46 qbits 阅读(322) 评论(0) 推荐(0) 编辑