摘要:一、可重入函数 1.可重入函数介绍 main函数调⽤insert函数向⼀个链表head中插⼊节点node1,插⼊操作分为两步,刚做完第⼀步的 时候,因为硬件中断使进程切换到内核,再次回⽤户态之前检查到有信号待处理,于是切换 到sighandler函数,sighandler也调⽤insert函数向同⼀ 阅读全文
posted @ 2017-06-15 13:09 滴巴戈 阅读 (494) 评论 (0) 编辑
摘要:1. boost::shared_ptr 前面我已经讲解了两个比较简单的智能指针,它们都有各自的优缺点。由于 boost::scoped_ptr 独享所有权,当我们真真需要复制智能指针时,需求便满足不了了,如此我们再引入一个智能指针,专门用于处理复制,参数传递的情况,这便是如下的boost::sha 阅读全文
posted @ 2017-05-11 21:02 滴巴戈 阅读 (3656) 评论 (0) 编辑
摘要:1. 引入 C++语言中的动态内存分配没有自动回收机制,动态开辟的空间需要用户自己来维护,在出函数作用域或者程序正常退出前必须释放掉。 即程序员每次 new 出来的内存都要手动 delete,否则会造成内存泄露, 有时我们已经非常谨慎了 , 然防不胜防:流程太复杂,程序员忘记 delete;异常导致 阅读全文
posted @ 2017-05-10 22:24 滴巴戈 阅读 (1689) 评论 (0) 编辑
只有注册用户登录后才能阅读该文。 阅读全文
posted @ 2017-05-09 12:01 滴巴戈 阅读 (69) 评论 (0) 编辑
摘要:前面介绍的模板有关知识大部分都是用顺序表来举例的,现在我们就专门用模板来实现顺序表,其中的很多操作都和之前没有多大区别,只是有几个比较重要的知识点需要做专门的详解。 问题一实质同下面的问题3,后面再做详细分析。 这里很有必要详解实现上面赋值运算符重载的现代写法的实现原理 :首先看上面代码(list1 阅读全文
posted @ 2017-05-02 22:40 滴巴戈 阅读 (375) 评论 (0) 编辑
摘要:我们以顺序表为例来说明,普通顺序表的定义如下: 模板类也是模板, 必须以 关键字templ ate开头, 后接模板形参表。 模板类一般格式如下:template<class 形参名 1, class 形参名 2, . . . class 形参名 n>class 类名{ . . . } ; 【 模板类 阅读全文
posted @ 2017-04-30 10:22 滴巴戈 阅读 (1249) 评论 (-1) 编辑
摘要:1、引入 如何编写一个通用加法函数?第一个方法是使用函数重载, 针对每个所需相同行为的不同类型重新实现这个函数。C++的这种编程机制给编程者极大的方便,不需要为功能相似、参数不同的函数选用不同的函数名,也增强了程序的可读性。简单示例: 【 缺点】1、 只要有新类型出现, 就要重新添加对应函数。2、 阅读全文
posted @ 2017-04-29 19:09 滴巴戈 阅读 (727) 评论 (0) 编辑
摘要:1、什么是栈帧? 栈帧也叫过程活动记录,是编译器用来实现函数调用过程的一种数据结构。C语言中,每个栈帧对应着一个未运行完的函数。从逻辑上讲,栈帧就是一个函数执行的环境:函数调用框架、函数参数、函数的局部变量、函数执行完后返回到哪里等等。栈是从高地址向低地址延伸的。每个函数的每次调用,都有它自己独立的 阅读全文
posted @ 2017-04-27 20:23 滴巴戈 阅读 (6952) 评论 (0) 编辑
摘要:main函数和启动例程 当内核使用一个exec函数执行C程序时,在调用main函数之前先调用一个特殊的启动例程,可执行程序将此例程指定为程序的起始地址。启动例程从内核获取命令行参数和环境变量,然后为调用main函数做好准备。我们常用gcc main.c -o main命令编译一个程序,其实也可以分三 阅读全文
posted @ 2017-04-26 21:47 滴巴戈 阅读 (584) 评论 (0) 编辑
摘要:进程优先级 进程cpu资源分配就是指进程的优先权(priority)。优先权高的进程有优先执行权利。 权限与优先级 权限(privilege)是指在多用户计算机系统的管理中,某个特定的用户具有特定的系统资源使用权力,像是文件夹,特定系统指令的使用或存储量的限制。权限是有或没有的问题,而优先级则是在已 阅读全文
posted @ 2017-04-25 21:57 滴巴戈 阅读 (1879) 评论 (0) 编辑
摘要:纯虚函数 纯虚函数是一种特殊的虚函数,在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。纯虚函数的存在是为了更方便使用多态特性。它的一般格式如下: class <类名> { virtual <类型><函数名>(<参数表>) 阅读全文
posted @ 2017-04-19 17:29 滴巴戈 阅读 (1023) 评论 (0) 编辑
摘要:什么是多态 从字面上理解就是多种形态的意思。而多态一词最初源自希腊语,其含义便是“多种形式”,意思是是具有多种形式或形态的情形,在C++语言中多态有着更广泛的含义。在C++ primer一书中把具有继承关系的多个类型称为多态类型,因为我们能使用这些类型的“多种形式”而无须在意它们的差异。百度百科上提 阅读全文
posted @ 2017-04-19 11:25 滴巴戈 阅读 (2025) 评论 (0) 编辑
摘要:在上一篇文章中详细介绍了task_struct结构体内的常见成员,然后我们就来看一下具体内容。每个进程都把它的信息放在各自的 task_struct 这个数据结构中,task_struct 主要包含了这些内容:标示符 : 描述本进程的唯一标示符,用来区别其他进程。状态 : 任务状态,退出代码,退出信 阅读全文
posted @ 2017-04-17 21:42 滴巴戈 阅读 (687) 评论 (0) 编辑
摘要:1、单继承与多继承 单继承是一般的单一继承,一个子类只 有一个直接父类时称这个继承关系为单继承。这种关系比较简单是一对一的关系: 多继承是指 一个子类有两个或以上直接父类时称这个继承关系为多继承。这种继承方式使一个子类可以继承多个父类的特性。多继承可以看作是单继承的扩展。派生类具有多个基类,派生类与 阅读全文
posted @ 2017-04-16 21:52 滴巴戈 阅读 (472) 评论 (0) 编辑
摘要:STL源码初步接触 STL = Standard Template Library,直译过来是:标准模板库,是惠普实验室开发的一系列软件的统称。从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。这里的“容器”和算法的集 阅读全文
posted @ 2017-04-16 13:53 滴巴戈 阅读 (1430) 评论 (0) 编辑
摘要:进程概念介绍 进程是操作系统对运行程序的一种抽象。 • 一个正在执行的程序; • 一个正在计算机上执行的程序实例; • 能分配给处理器并由处理器执行的实体; • 一个具有普以下特征的活动单元:一组指令序列的执行、一个当前状态和相关的系统资源集。 内核观点:担当分配系统资源(CPU时间,内存)的实体。 阅读全文
posted @ 2017-04-13 22:07 滴巴戈 阅读 (3358) 评论 (0) 编辑
摘要:1、作用域与重定义(同名隐藏) 一样的,先上代码 编译后,编译器会报错 错误表明:编译器并没有将c.a()看做C类继承自A类的a()函数,而是报错没有给a函数参数,即不构成函数重载,如果给c.a(10)一个参数,编译通过。输出:C 那么我们不给C类中定义同名函数呢 编译通过,运行输出:A 如果C类定 阅读全文
posted @ 2017-04-11 12:46 滴巴戈 阅读 (741) 评论 (0) 编辑
摘要:在继承关系里面, 在派生类中如果没有显示定义这六个成员函数, 编译系统则会默认合成这六个默认的成员函数。 1、构造与析构函数的调用关系 调用关系先看一段代码: 输出结果为: 代码中,我们利用派生类Derived,创建了一个对象d,根据输出结果看到,貌似创建对象d的过程是:先调用基类的构造函数,再调用 阅读全文
posted @ 2017-04-09 21:58 滴巴戈 阅读 (1371) 评论 (0) 编辑
摘要:vim自带的帮助手册是英文的, 对平时编程的人来说没有多大阅读困难,在何况还有"星级译王"呢, 但是我猜和我一样连英语四级都愁的大有人,可偏偏就有一帮好心人人将其翻译成了中文, 可偏偏我又挡不住诱惑将它安装了, 唉.......又痛失一个学习英文的好机会, 下不为例。而我又是好心人,所以就分享给大家 阅读全文
posted @ 2017-04-08 19:29 滴巴戈 阅读 (287) 评论 (0) 编辑
摘要:顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。这样的存储方式使得线性表逻辑上相邻的元素,其在物理存储单元中也是相邻的。只要知道了第一个元素的存储地址,就可以知道线性表中任何一个元素的存储地址。本文利用C++语言,在Windows平台 Visu 阅读全文
posted @ 2017-04-04 22:22 滴巴戈 阅读 (456) 评论 (0) 编辑
摘要:1、项目介绍 HTTP协议是应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。协议的详细内容,前面一篇HTTP协议详解已经详细介绍了,这里不再赘述。 项目总体描述:HTTP支持客户端/服务器模式,终端用户可通过浏览器或网络爬虫与服务器建立连接,所以首先需要自主实现服务器Se 阅读全文
posted @ 2017-09-01 16:00 滴巴戈 阅读 (424) 评论 (0) 编辑
摘要:1、什么是空间配置器? 空间配置器负责空间配置与管理。配置器是一个实现了动态空间配置、空间管理、空间释放的class template。以内存池方式实现小块内存管理分配。关于内存池概念可以点击:内存池。 2、STL空间配置器产生的缘由 在软件开发,程序设计中,我们不免因为程序需求,使用很多的小块内存 阅读全文
posted @ 2017-08-31 12:22 滴巴戈 阅读 (213) 评论 (0) 编辑
摘要:1、池的概念 一般来说,服务器的硬件资源相对充裕,很多时候我们使用以空间换时间的方法来提高服务器的性能,不惜浪费更多的空间以换取服务器运行效率。具体做法是提前保存大量的资源,以备不时之需以及重复使用。这就是池的概念。池是一组资源的集合,这组资源在服务器启动之初就已经被创建并初始化,这称为静态资源分配 阅读全文
posted @ 2017-08-21 16:38 滴巴戈 阅读 (980) 评论 (0) 编辑
摘要:HTTP协议介绍 http(超文本传输协议)是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。特点: (1)支持客户/服务器模式。 HTTP是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的 阅读全文
posted @ 2017-08-18 11:31 滴巴戈 阅读 (152) 评论 (0) 编辑
摘要:1.位图 由题引入: 【腾讯】:2.给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。 如果将40亿个数按整型放入内存,显然不科学,就算内存足够,这样做也是浪费空间。 解决思路:用一个比特位表示一个数,存在的话该位上就置为1,不在的话置为0;这样40亿 阅读全文
posted @ 2017-08-16 20:40 滴巴戈 阅读 (299) 评论 (0) 编辑
摘要:1、strlen()求字符串长度 2、strcpy()字符串拷贝函数 (1)字符数组dest1和dest2必须定义得足够长,以容纳复制进去的字符串; (2)与其相关的还有strncpy()函数定义拷贝固定长度的字符 作用是将str2中前2个字符复制到str1中,取代str1中原有的前两个字符,N应不 阅读全文
posted @ 2017-08-14 15:43 滴巴戈 阅读 (276) 评论 (0) 编辑
摘要:传输层及其以下的机制由内核提供,是操作系统的一部分,应⽤层由⽤户进程提供应⽤层数据通过协议栈发到⽹络上时,每层协议都要加上⼀个数据⾸部(header),称为封装。不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在⽹络层叫做数据报(datagram),在链路层叫做帧(frame)。 阅读全文
posted @ 2017-08-13 08:49 滴巴戈 阅读 (3799) 评论 (1) 编辑
摘要:1、什么是ARP与RARP协议 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。 在⽹络通讯时,源主机的应⽤程序知道⽬的主机的IP地址和端⼜号,却不知道⽬的主机的硬件地址,⽽数据包⾸先是被⽹卡接收到再去处理上层协议的 阅读全文
posted @ 2017-08-09 20:25 滴巴戈 阅读 (476) 评论 (4) 编辑
摘要:1.函数atoi atoi (表示 alphanumeric to integer)是把字符串转换成整型数的一个函数。广泛的应用在计算机程序和办公软件中。atoi( ) 函数会扫描参数 nptr字符串,跳过前面的空白字符(例如空格,tab缩进等)。 原型:int atoi(const char *n 阅读全文
posted @ 2017-08-09 11:08 滴巴戈 阅读 (176) 评论 (0) 编辑
摘要:一、直接插入排序 直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的元素记录,按其关键字大小插入到它前面已经排好序的子序列中的适当位置,直到全部元素插入完成为止。 设需要排序的数组为a[0…n-1]。 1. 初始时,i = 0,a[0]自成1个有序区,无序区为a[1..n- 阅读全文
posted @ 2017-08-08 09:45 滴巴戈 阅读 (353) 评论 (0) 编辑