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