
笔记
愿风丶裁尘
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
哈希表/哈希冲突及解决方法(较全)
前导(题外话):关于哈希函数的选取,可以参见这篇文章,另外常见的字符串哈希函数及c++代码实现可以看这里主要有:常用的字符串Hash函数还有ELFHash,APHash等等,都是十分简单有效的方法。这些函数使用位运算使得每一个字符都对最后的函数值产生影响。另外还有以MD5和SHA1为代表的杂凑函数,这些函数几乎不可能找到碰撞。常用字符串哈希函数有BKDRHash,APHash,DJBHash,JSHash,RSHash,SDBMHash,PJWHash,ELFHash等等。BKDRHash无论是在实原创 2020-08-06 23:14:52 · 9829 阅读 · 0 评论 -
DDR问题
ddr的意思是double data rate,全称是ddr-sdram;sdram=Synchronous Dynamic Random Access Memory;sram=Static Random Access Memory;dram=Dynamic Random Access Memory所以,ddr实际上还是sdram,而sdram属于dram,所以ddr属于dram。至于sram,第一个s是static的意思,具体来说,cpu内部的L1,L2高速缓存就是sram,特点是集成度低,同样工原创 2020-09-17 21:22:42 · 895 阅读 · 0 评论 -
C++ lower_bound和upper_bound
二分查找,偷懒技巧lower_bound( )和upper_bound( )都是利用二分查找的方法在一个排好序的数组中进行查找的。在从小到大的排序数组中,lower_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。upper_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大原创 2020-09-08 13:18:46 · 470 阅读 · 0 评论 -
9.5滴滴面试——栈实现队列
终面问了一下这个很简单的题,踩坑了。原因就是之前刷题刷的飞快,也没去评论区看大家的思路,甚至当时的力扣的官方解答也不是最优解(现在改过来了)坑:很容易想到要用两个栈模拟——不用思考,很容易想到一种:放元素的时候直接放主栈,删除元素时都移到辅助栈,删除辅助栈顶部元素,再把剩下的搬到主栈。求轻喷,当时我想都没想就写了这个思路,力扣过了,好了下一道。。然后面试时。。。就没有然后了。。。刚才的想法中,一次操作里,一个元素会被移动两次(你可以选择是插入还是删除,无所谓)优化的想法应该是一个元素在一次操作里只原创 2020-09-07 23:36:21 · 207 阅读 · 0 评论 -
深入浅出MFC摘抄(1)Windows进程和线程
原创 2020-09-07 20:59:59 · 141 阅读 · 0 评论 -
C++三个线程交替打印ABC
使用C++11的标准线程语法,用一个int变量控制条件变量的wait()阻塞等待时机,用notify_all()唤醒条件变量。#include <iostream>#include <thread>#include <condition_variable>std::mutex mtx;std::condition_variable cv;int ready = 0;void PrintString_1(){ std::unique_lock原创 2020-08-30 14:33:54 · 2109 阅读 · 0 评论