主页

Stl源码剖析笔记_容器

写在前面 这部分内容包括序列式容器和关联式容器两种, 序列式容器 vector 动态扩容 开辟新的内存空间 复制旧的元素到新的内存中 释放旧的内存 list deque 只是用起来像连续内存空间(拥有随机访问迭代器), 实际上是由多块离散的内存串接起来的. stack queue heap(priority_queue) 关联式容器

阅读更多

写博客时候常用的一些提高效率的插件

写在前面 写一下写博客常用的几个方便的插件, 专注码字! 复制 markdown 格式超链接: Rich URL 写博客就会经常去引用别人的好文章, 而这时候复制超链接就是个麻烦事了, 众所周知 markdown 里面的链接格式是[名称](链接), 那就需要复制两次来写引用链接(直接放网址还是不太优雅, 别人用起来也不方便). 以前用 edge时候直接复制就是 markdown 支持的链接, 可惜 edge 越来越臃肿, 还是换成 Chrome 了, 那这功能不就不能用了? 后来在 Chrome 的插件市场里面找了好几个插件, 才最终发现了这款经典的复制链接插件: 名为 Rich URL 可以定制快捷键和链接的格式, 就是最棒的, 虽然不是原生的, 也能让效率提高不少! ...

阅读更多

C++引用计数基类与智能指针的实现

写在前面 参考了 More Effective C++ Item28/29, 非常经典的一个条款, 把引用计数方法的实现完整呈现出来, 细节也讲得非常细致. 测试代码我写在一个文件里面了, 通过 namespace 分隔, 有兴趣的同学可以看这里: Effective-Cpp-All/more-effective-c++/Techniques_Idioms_Patterns/item29_Reference_Counting.cpp at main · zorchp/Effective-Cpp-All · GitHub; 技巧/准则 struct 嵌套于 class的 private 段落内, 可以很方便地让该 class 的所有成员有权处理这个 struct, 而又...

阅读更多

操作系统导论笔记 持久化

写在前面 这部分主要是讲数据的持久化, 也就是磁盘存取, 其实对应了内存虚拟化中交换空间那块. 当然还有一些分布式系统的内容, 这里就不提了. 这本书真的很经典! I/O 设备 寄存器 数据寄存器 指令寄存器 状态寄存器 磁盘寻址 DMA 直接内存访问 中断 慢的系统: 中断 快的系统: 轮询 或者二者结合 (硬件)中断允许 CPU 计算与I/O 操作重叠, 这是提高 CPU 利用率的关键. 磁盘驱动器 性能评价指标 寻道时间(多磁道) 旋转延迟(单磁道) 磁盘调度 最短寻道时间优先: SSTF 可能导致饥饿 电梯: SCAN 以跨越磁道的顺序来服务磁盘请求 最短定位时间优先: SPTF 视情况而...

阅读更多

C++内联inline函数失效的几种情况与分析

写在前面 参考: Effective C++ Item30 Inside the C++ Object Model 4.5 inline Functions gcc之inline关键字(汇编角度查看内联) ; 事实上现代的 C++编译器已经可以智能优化代码了, 并不需要 inline 来刻意处理了, 这里只是为了学习这种历史遗留下来的优化方法以及 inline 的一些可能会失效的情况. inline 的处理 第一阶段: 分析函数定义, 以决定函数的本质 inline 能力(与编译器相关的能力) 如果函数因为复杂度等原因不能恒伟内敛, 就会被转为一个 static 函数, 并在’被编译模块’内产生对应的函数定义. 第二阶段 真正的 inline ...

阅读更多

深度探索c++对象模型笔记(第四章)成员函数语义学

写在前面 一般来说, 类的成员函数有三种: 非静态成员函数(当然也是非虚函数) 静态成员函数 虚成员函数 第一种需要 this 指针(通常是在函数的第一个参数位置传入)以联系类对象. 非静态成员函数 #include <cstdio> class B { public: B() { printf("%s default-ctor\n", __func__); } B(const B &) { printf("%s copy-ctor\n", __func__); } B &operator=(const B &) { printf("%s...

阅读更多

C++中的三种访问级别与继承下的情况总结

写在前面 写一下访问控制部分的总结, 内容来自 C++Primer5ed. 加上了一点自己的理解和例子, 方便大家学习. 文中的例子都在 clang++ 16 (MacOS13.4 arm64) 下运行测试通过. 总览 总体认知 public: 能被所有用户 (类内成员 / 对象 / 友元) 访问 protected: 能被 派生类成员 / 友元 访问 private: 能被 类内成员 / 友元 访问 这里最不好理解的就是 protected 级别, 因为这个级别既像 public(在派生类中)又像 private(在类的实例对象中). 具体认知: protected 和私有成员类似, 受保护成员对类的用户(对象)来说不可访问 和公有成员类似,...

阅读更多

Total views.
您是Zorch的第 个小伙伴
Hits