数据结构和算法 数据结构之栈 (三):顺序栈实现 顺序栈的实现和使用数组实现原理一样,都是预先申请一段连续的地址块作为数据域,通过栈顶下标或指针移动完成压栈、出栈等操作。不同的是,使用指针的顺序栈支持栈满时扩容操作,原理更倾向于 vector 的实现。 ... 03 月 25 日1,010评论树 阅读全文
数据结构和算法 数据结构之栈 (二):链式栈实现 链栈的原理和链表的原理一样,通过一个 next 指针把一个个的节点链起来: 初始时,栈底指针和栈顶指针都为空,每插入一个节点,栈顶指针改变,当前插入节点的 next 指针指向之前的栈顶元素。 同样,在使用 to... 03 月 24 日267评论树 阅读全文
数据结构和算法 数据结构之栈:使用数组和 vector 实现栈 栈是一种 「先进后出」 的数据结构,最先进入栈的元素位于栈的底端,最后进入的位于顶端。 其主要的接口函数为: pop(): 弹出顶端元素 size(): 返回栈容量 empty(): 判断栈是否为空 pu... 03 月 24 日430评论树 阅读全文
C/C++ 计算机中的字节序 一、概述 字节序用来表示数据在内存中的排布方式,它分为两种:高字节序和低字节序,也被称为大小字节序。因为内存是从低到高布局,所以如果内存的低位存的是数据的低位,该字节序被称为低字节序。而如果内存的低位... 03 月 19 日522评论 阅读全文
C/C++ C++构造函数的执行顺序 一、构造函数的执行规则 C++构造函数的调用顺序为: 如果类中包含静态成员变量,先执行静态成员变量的构造函数。 如果类是派生类,则先执行基类的构造函数。同样如果基类也是一个派生类,它也要先执行基类的构... 03 月 15 日157评论 阅读全文
C/C++ C++全局变量和静态变量的区别 一、全局变量 全局变量默认是静态的,通过 extern 关键字声明后可以在多个文件中使用。 具体可参考:C++变量的声明、定义和 extern 关键字 header.h [crayon-682405c4998... 03 月 15 日1,1312 阅读全文
C/C++ C++变量的声明、定义和 extern 关键字 一、变量的声明和定义 C++的分离编译机制允许程序拆分成多个文件来写,最常见的是在头文件中进行声明,源文件中进行定义,然后一起编译: [crayon-682405c499bbb808875394/] ... 03 月 15 日556评论 阅读全文
C/C++ c++中的变量初始化 一、默认初始化 C++中,对于定义时没有指定初值的变量,将会被默认初始化,此时变量将被赋予 「默认值」,默认值是具体是什么将由变量的类型和位置决定。 对于内置类型来说,它的默认值由定义的位置决定,定义于... 03 月 14 日269评论 阅读全文
操作系统 进程的状态变迁 一、进程状态 通常情况下,我们描述进程的状态主要有三种: 就绪态:进程已经拥有了执行条件,但是没有获取到 CPU,无法执行。 运行态:进程已经占有了 CPU,此时正在 CPU 上运行。 阻塞态:进程在等待某项... 03 月 09 日752评论 阅读全文
C/C++ socket 网络编程一:socket 介绍及函数原语 socket 计算机中的一种网络传输机制,对 TCP 和 UDP 的封装,自动帮我们在底层完成各种协议操作,接收到数据包后返回到上层应用。 socket 分为客户端和服务端,它的工作模型为:(更多&hellip... 03 月 09 日365评论socket 阅读全文