09 2015 档案

摘要:templateclass LockFreeStack{private: struct Node { std::shared_ptr data; Node* next; Node(T const& value): ... 阅读全文
posted @ 2015-09-30 10:20 wu_overflow 阅读(339) 评论(0) 推荐(0)
摘要:templateclass ThreadsafeList{ struct Node { std::mutex m; std::shared_ptr data; std::unique_ptr next; Node(): ... 阅读全文
posted @ 2015-09-29 09:33 wu_overflow 阅读(1152) 评论(0) 推荐(0)
摘要:template>class ThreadsafeLookupTable{private: class BucketType { private: typedef std::pair bucketValue; typedef std::list buck... 阅读全文
posted @ 2015-09-27 10:06 wu_overflow 阅读(159) 评论(0) 推荐(0)
摘要:倒是很简单啊,我是先用 brew istall 安装的 boost,Qt creator 的版本是 3.4.2然后右键项目,选择添加库,接着在相应的文件夹里选择相应的后缀为 .a 的库文件,.pro 中就会自动配置。所以这就完了吗?当然不,我这里报错:can't map file crrno=22 ... 阅读全文
posted @ 2015-09-26 17:57 wu_overflow 阅读(374) 评论(0) 推荐(0)
摘要:templateclass ThreadsafeQueue{private: struct Node { std::shared_ptr data; std::unique_ptr next; }; std::unique_... 阅读全文
posted @ 2015-09-26 09:18 wu_overflow 阅读(655) 评论(0) 推荐(0)
摘要:上一篇文章里说到了一个极简易队列的实现,然而它对于并发存在一个问题,就是当多个或者说就是两个线程并发地访问队列,分别调用 push() 与 tryPop() 时,可能就会导致数据争用或者死锁。以下是一种思路,通过分离数据允许并发。其大致思路是预先分配一个不储存任何数据的结点占位,当 push() 进... 阅读全文
posted @ 2015-09-24 18:48 wu_overflow 阅读(306) 评论(0) 推荐(0)
摘要:templateclass Queue{private: struct Node { T data; std::unique_ptr next = nullptr; Node(T _data): ... 阅读全文
posted @ 2015-09-23 14:48 wu_overflow 阅读(344) 评论(0) 推荐(0)
摘要:学的还是不满意,对于智能指针还是有几个误区:1. 对于 unique_ptr sp1,觉得在 auto sp2 = std::move(sp1) 之后,其所管理的指针的资源会因为 sp1 的析构而导致其释放,后来发现并不是,move 操作只是管理权的移交,所以其存储的裸指针所分配的资源并不会被释放。... 阅读全文
posted @ 2015-09-23 11:45 wu_overflow 阅读(164) 评论(0) 推荐(0)
摘要:templateclass ThreadsafeQueue{private: mutable std::mutex _mut; std::queue> _dataQueue; std::condition_variable _dataCo... 阅读全文
posted @ 2015-09-23 01:21 wu_overflow 阅读(275) 评论(0) 推荐(0)
摘要:memory_order_release 意为只有前面的语句都执行完后,这条语句才会执行。memory_order_acquire 意为只有这条语句执行完之后,后面的语句才会执行。memory_order_consume 和 memory_order_acquire 差不多,只是memory_ord... 阅读全文
posted @ 2015-09-19 14:27 wu_overflow 阅读(161) 评论(0) 推荐(0)
摘要:void printTriangle(int32_t layerNum){ if (layerNum < 1){ return; } for (int32_t currentNum = 1, spaceWide = layerNum - 1; ... 阅读全文
posted @ 2015-09-16 17:51 wu_overflow 阅读(354) 评论(0) 推荐(0)
摘要:想了很久啊,看了标签是 DP,所以考虑之后自己琢磨出了个策略,结果还是不对啊,各种 test case 过不去。后来才发现这其实还可以用更为简单的方法——数学定理对没错,所以说世界上只有两种程序员:懂数学的和不懂数学的。// 四平方定理,又称 Lagrange's four-square theor... 阅读全文
posted @ 2015-09-15 20:21 wu_overflow 阅读(295) 评论(0) 推荐(0)
摘要:这个问题存很有意思,因为用到了一个性质,就是: 设正整数 i, n。 若 i 是 n 的约数,那么 n / i 也必是 n 的约数。由此可见,约数都是成对出现的,所以只需要枚举到 √n 就可以,因为大于 √n 的那些约数就是前面提到的 n / i。所以,只需要枚举 √n 之前的数,并在统计后乘 2 ... 阅读全文
posted @ 2015-09-14 12:06 wu_overflow 阅读(613) 评论(0) 推荐(0)
摘要:原问题是,生产线中出现了一个残次品,导致在那之后的产品都是残次品,要求找出第一个残次品。问题中还给出了用于判断的 API isBadVersion(version) 我把问题简化了,理解为在一个数组中,前一段是正数,后一段是负数,求第一个负数的位置。奇怪的是我在 Xcode 上运行好几种情况都是成功... 阅读全文
posted @ 2015-09-10 13:26 wu_overflow 阅读(196) 评论(0) 推荐(0)
摘要:比如一个 [3, 1, 5, 10] 的树,设其根结点为 root, 那么对于函数hasPathSum(root, 18) 的返回值就是 true。题目列出的知识点是深度优先搜索,可是我刚明白一点动态规划,所以我考虑的是,符合条件的树枝去掉叶子,剩下节点的和必然等于给定值减去叶子节点。bool ha... 阅读全文
posted @ 2015-09-05 22:51 wu_overflow 阅读(169) 评论(0) 推荐(0)
摘要:本来是打算直接用 bitset 解决问题的,转成二进制再转成十进制,相加后再通过逆运算求得最终的字符串。然而却存在一个问题,就是溢出,当给出的二进制过于大的时候,相加就解决不了了,因此就要按照字符串来处理。以下是我的解决方案,虽说很丑,然而速度还行吧:string addBinary(string ... 阅读全文
posted @ 2015-09-05 15:41 wu_overflow 阅读(624) 评论(0) 推荐(0)
摘要:因为每一行都是根据其上一行推出来的,所以说我只需要上一行的信息。vector getRow(int rowIndex) { if (rowIndex (); } vector result(rowIndex + 1); result[0] = 1; result[row... 阅读全文
posted @ 2015-09-04 01:14 wu_overflow 阅读(290) 评论(0) 推荐(0)
摘要:我一只觉得是不是一个深度优先搜索啥的;然后一看是二叉树,立刻脑子就往递归去了,回溯?让叶子往根回溯?通过推迟求值来得到叶子再回溯,这就是我一开始的想法。然而却毫无进展,唉,于是我就用了一个很笨的方法,就是每遇到一个右孩子,就复制分叉前的树枝存入容器里,存入的位置由 index 作为其 id为了不会存... 阅读全文
posted @ 2015-09-01 17:02 wu_overflow 阅读(521) 评论(0) 推荐(0)