C/C++
文章平均质量分 87
C/C++
别下那么会看场合的雨啊
努力绘世中...
展开
-
类静态变量私有化问题
今天在看两种单例模式的时候有一点疑惑查了点资料,记录一下。在看这个单例模式的时候一些关于类静态私有的想法原创 2023-07-02 11:48:27 · 364 阅读 · 1 评论 -
C/C++字节对齐规则
现代计算机中,内存空间按照字节划分,理论可以从任何骑术地址访问任意类型的变量。但是实际访问中特定类型的变量经常在特定的内存地址访问,这就需要各种类型数据按照一定规则在空间上排列,而不是一个接一个地存放,这就是对齐。原创 2023-01-13 16:26:36 · 891 阅读 · 0 评论 -
构造和析构
将一个类的构造函数私有化,可以使该类不能被实例化,同时不能被继承。但是在类内可以访问自身的private字段,所以我们可以通过static函数创建class对象,以引用或者指针的形式返回。这样就可以使用这个类的对象了构造函数私有化的类的设计保证了其他类不能从这个类派生或者创建类的实例。原创 2023-01-11 16:49:12 · 360 阅读 · 0 评论 -
类静态变量的初始化
静态成员变量是一种特殊的成员变量,他被关键字static修饰,这个变量会被当前类所有,无论创建多少A对象内存中都只有一个value变量。原创 2023-01-11 11:28:24 · 3739 阅读 · 0 评论 -
STL中vector怎么扩容
vector被称为向量容器,该容器擅长在尾部插入或删除元素,时间复杂度为O(1);而对于在vector容器头部或者中部插入或删除元素,则花费时间要长一些(移动元素需要耗费时间),时间复杂度为线性阶O(n)。使用vector容器,需要包含,注意这里无扩展名。STL中规定容器的区间遵循前闭后开原则,即容器中的一对迭代器start和finish标识的前闭后开区间,从start开始,直到finish-1.迭代器finish所指的是“最后一个元素的下一位置”。原创 2023-01-08 11:17:47 · 741 阅读 · 0 评论 -
new和malloc的区别以及底层实现原理
在Linux环境下从操作系统角度看,进程分配内存有两种方式,分别由两个系统调用完成:brk 和 mmap (不考虑共享内存)这两种方式分配的都是虚拟内存,没有分配物理内存。在第一次访问已分配的虚拟地址空间的时候,发生缺页中断,操作系统负责分配物理内存,然后建立虚拟内存和物理内存之间的映射关系。malloc基本的实现原理就是维护一个内存空闲链表,当申请内存空间时,搜索内存空闲链表,找到适配的空闲内存空间,然后将空间分割成两个内存块,一个变成分配块,一个变成新的空闲块。原创 2023-01-07 11:09:17 · 923 阅读 · 1 评论