
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
翻转链表:使用头插入法。如果链表没有头节点,那就new一个头结点,使用一个指针指向头结点,另一个指针指向头的下一个节点;然后头部指针和下一个节点指针断开;当p!=nullptr时,依次采用头插入方式插入。核心插入如下:删除倒数第N个节点:使用双指针方法,头指针先移动N个节点,然后两个指针一起移动,判断条件时,p->next!= nullptr时,直接返回。最后q指向的待删除节点的前一个节点。

数据结构与算法之回溯算法

这两天学习了C的位运算,记录一下,这个知识也是看Linux内核的基础。与或非位与& 和 逻辑与&&位与的真值表的特点是:只有1&1结果才1;1&0,0&1,0&0结果都为0.位与操作与逻辑与操作一起记住,把非0的数看成是1,0做为0,然后再进行与&运算,例如0xffff&&0x11=1;位或| 和 逻辑或||位或只有两
书中一共描述了七种进程调度算法,为了学到这几种调度算法,后边做了几道练习题。1. 先来先服务(FCFS)调度算法先来先服务调度算法是最简单的调度方法。其基本原则是,按照进程进入就绪队列的先后次序进行选择。对于进程调度来说,一旦一个进程得到处理机,它就一直运行下去,直到该进程完成任务或者因等待某事件而不能继续运行,才会让出处理机。先来先服务调度算法属于非剥夺方式。从表面上看,这个方法对于所有进程都是

vec.push_back(20), 在容器的末尾添加元素,时间复杂度O(1),在末尾插入元素可能导致扩容。扩容会带来性能开销,假如vector中存放的是对象,扩容后,要将之前元素的内容进行拷贝构造,然后再析构掉之前的元素,最后将之前的内存释放掉。其中,对象的构造和析构都是通过空间适配器实现的,空间适配器的四个方法,allocatedeallocateconstructdestroy通过迭代器方式

分配器就是扮演内存池的角色。C++中的分配器直接使用了malloc,并没有使用内存池。// 保存 3个int,12字节。

本文内容:lambda,initializer_listlambda 是C++ 11 引入,是一个匿名函数,可以捕获一定范围内的变量。特点:a) 是个匿名函数,也可以理解为“可调用的代码单元”,或者理解为未命名的内联函数;b) 它也有一个返回类型,一个参数列表,一个函数体;c) 与普通函数不同的是lambda 表达式可以在函数内部定义。格式:[捕获列表] (参数列表)-> 返回类型{函数体};因为

本文记录C++11的返回值类型后置,范围for,nullptr, lambda表达式。

泛型Lambda是对C+11Lambda的扩充,使用起来更方便。

总结C++14的初始化捕获,它就是对C++11Lambda功能上的扩充,是一次“升级”,这使得Lambda更好用了。








