SF
C++工程开发
C++工程开发
注册登录
关注博客
注册登录
主页
关于
RSS
【6.C++基础】-智能指针
梦想家
2020-08-04
阅读 3 分钟
2.2k
程序使用动态内存原因:不知道自己需要多少对象;不知道对象准确类型;需要多个对象间共享数据shared_ptrshared_ptr/weak_ptr 的“计数”在主流平台上是原子操作,没有用锁,性能不俗 {代码...} 当一个shared_ptr绑定到一个普通指针时,就将内存管理责任交给了shared_ptr,就不能再用内置指针来访问shared_ptr指向的内存。...
【6.C++基础】-锁
梦想家
2020-08-04
阅读 6 分钟
2.1k
锁的意义原子性+可见性同一时间,只有一个线程执行锁中代码 + 锁内读在锁前代码执行完,写在锁释放前可见原子操作本身内核的原子是通过原子指令实现的[链接]原子库实现的一下方法可以带内存屏障来加强可见性。store //原子写load //原子读exchange //原子交换compare_exchange_weak //compare and set 性能更高,但是两...
【6.C++基础】-高效标准的stl实现memcpy,strcpy,strncpy,memmove
梦想家
2019-08-02
阅读 3 分钟
2.1k
标准的strcpy,strncpy等C风格的char函数基本都没有缓冲区溢出校验,都算是高危函数,标准版都是基于memcpy实现,memcpy可能会出现覆盖,且4字节一次拷贝。除了给出这几个实现,开始的单字节是简化版。
【5.linux操作系统】-内核进程/线程/系统调用/调度
梦想家
2019-07-17
阅读 4 分钟
3.2k
1.CFS时间记账:task_struct的se vruntime(这个时间是经过了所有可运行进程总数的标准化,理想下相同优先级有相同vruntime)选择最小vruntime 红黑树 可运行队列,最左侧节点缓存2.实时调度FIFO,RR,IDLEFIFO:一直运行直到阻塞/更高优先级的抢占RR:有时间片,耗尽后,同优先级轮流IDLE 比nice19优先级还低
【6.C++基础】-算法leetcode
梦想家
2019-06-21
阅读 26 分钟
2.1k
广度优先搜索(breadth-first-search)、深度优先搜索(depth-first-search),以及中序遍历、后序遍历和前序遍历之间的差别。堆总能找到最大值,但代价就是寻找其他任何一个值所需的时间都是O(n)。插入和删除所需的时间依然是O(logn)BFS用queue,dfs在另一个笔记里有很多例子。
【6.C++基础】-算法-KMP
梦想家
2019-06-14
阅读 2 分钟
1.1k
为何连算法都会总忘记=。=反省,脑袋有包关键点:target串(长的),partten串,如果二者在j上不等,将partten可以向前移动next[j]而取代只前移1如何确定next[j]? T与P在j-1前都相等,所以若移动后想要相等,移动后的前面部分也要与这部分T相等,三者相等:T[j-k~j]=P[j-k~j]=P[1~K],否则移动都是冗余的 即转为短串P的...
【6.C++基础】-算法-动态规划
梦想家
2019-06-13
阅读 2 分钟
2.3k
最优解 依赖重复计算的 独立的 子过程1.发现最优解结构2.推到递归式3.自低向上存储子过程结果过(备忘录,非最优子过程,只是存储,类似迷宫)4.最优解的存储和计算
【6.C++基础】代码常识
梦想家
2019-05-28
阅读 10 分钟
1.8k
返回数组的形式直接return array只会返回第一个元素哦!下面介绍四种返回数组方法 {代码...} 单例1.饿汉实现 {代码...} 2.懒汉实现 pthread_once,atexit(Destroy); {代码...} 2.懒汉实现 锁,atexit(Destroy); {代码...} 4.懒汉 静态对象,保证只有一个,不用new,不需要析构 {代码...} 5.测试函数 {代码...} 以上程序的...
【6.C++基础】-模板/auto详解
梦想家
2019-05-28
阅读 4 分钟
2.8k
实例化:指的是生成模板代码。显示实例化关键词是template ;会实例化所有成员,控制在一处实例化,其他用extern template引入