
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
网络通信是一个庞大的知识体系,协议众多、层次复杂。但如果你从“为什么需要子网掩码”这个问题出发,一路追问下去,会发现所有知识点都能串成一条逻辑闭环的链。这篇文章就是沿着这条链,从最基础的地址划分,到数据如何跨越网络,再到操作系统如何组织这一切,做一次完整的梳理。读完你可能会发现:网络分层不是上下级的指挥关系,而是一套各司其职、相互约束、软硬协同的协作体系。
vector的文档介绍使用STL的三个境界:能用,明理,能扩展构造函数声明接口说明vector()无参构造构造并初始化n个val拷贝构造使用迭代器进行初始化构造。

本文系统梳理了Linux程序从源码到执行的完整链路,包含五个关键环节:编译生成ELF可重定位文件、链接合并目标文件与库、进程虚拟地址空间初始化、加载到物理内存、CPU执行指令。重点解析了ELF格式结构、动静态库链接规则、虚拟地址规划原理、进程内存管理机制(mm_struct、页表)以及硬件地址转换流程(MMU)。整个过程体现了编译器、操作系统和硬件的协同设计:编译器规划虚拟地址,操作系统实现地址空
namespace本质是定义出一个域,这个域跟全局域各自独立,不同的域可以定义同名变量。C++中域有函数局部域,全局域,命名空间域,类域,域影响的是编译时语法查找一个变量/函数/类型出处,所以有了域隔离,名字冲突就解决了。局部域和全局域除了会影响编译查找逻辑,还会影响变量的生命周期,命名空间域和类域不会影响变量生命周期。namespace只能定义在全局,当然他还可以嵌套定义。项目工程中多文件中定义
进行以上操作可不可以,如果链表模板里只有刚才两个参数,答案是不可以,因为我们需要这个结构体的地址进而访问其中的成员,问题就是我们少了指向结构体的指针,我们只有结点的指针,访问结构体还需要对结点进行解引用进而进行访问结构体里的成员,所以写成下面似乎也可以。通过迭代器对结点的访问,来进行操作,使用迭代器还可以保护链表中的结点不被显现(后面说),但是我们需要通过对迭代器进行封装,因为list的迭代器不像
都要⾛。
这种拷贝方式,称为浅拷贝。

vector的文档介绍使用STL的三个境界:能用,明理,能扩展构造函数声明接口说明vector()无参构造构造并初始化n个val拷贝构造使用迭代器进行初始化构造。










