C++程序设计
文章平均质量分 81
腾昵猫
致力于实用技术的研究,同时对哲学也感兴趣。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
计算机算法解题技巧
摘要 本文系统总结了算法解题的框架思维,重点强调思路优先于编码,并需保持冷静思考。核心内容包括: 树遍历:详细分析前序、中序、后序遍历的特点及应用场景,指出后序遍历适合需要子节点信息的场景。 动态规划:从名称解析其本质是分阶段决策和状态转移,提出解题五要素:base case、异常处理、状态、选择和DP设计。对比自顶向下(递归+备忘录)和自底向上(DP数组)两种实现方式。 经典问题解析: 零钱兑换:通过状态转移求最小硬币数 LIS问题:展示如何通过历史状态推导当前解 最大子数组和:连续子数组问题的典型解法原创 2025-11-25 16:41:13 · 35 阅读 · 0 评论 -
程序员的自我修养(三)
本文介绍了Linux中ELF目标文件格式的分类及分析工具。ELF文件主要分为可重定位文件(.o)、可执行文件、共享目标文件(.so)和核心转储文件四种类型。文章详细讲解了使用objdump命令查看段信息(-h)、内容(-s)和反汇编(-d)的方法,以及使用objcopy将任意文件作为目标文件段的技巧。此外,还介绍了通过GCC属性将变量和函数指定到特定段的语法。这些内容为深入理解ELF文件格式和进行目标文件分析提供了实用指导。原创 2025-10-27 22:40:33 · 360 阅读 · 0 评论 -
程序员的自我修养(一)
这篇文章回顾了《程序员的自我修养》一书中的核心知识要点,主要包括:计算机硬件架构(CPU通过北桥/南桥与设备通信)、对称多处理器概念、计算机层级接口(应用层-运行库-操作系统-硬件)、内存管理机制(虚拟内存与MMU映射)以及线程调度策略(IO密集型线程优先级更高)。文章以技术干货为主,适合有一定基础的读者复习计算机系统底层原理。原创 2025-10-27 10:52:10 · 430 阅读 · 0 评论 -
C++多重继承及虚继承内存结构
本文探讨了C++中多继承与虚继承的内存分布情况。在多继承示例中,子类derived继承base1和base2,虚表分析显示base1虚表与子类合并,base2单独成表。虚继承示例中,base1和base2虚继承baseofbase,内存布局显示祖父类出现在对象末尾且只有一个虚表。通过gdb调试和内存地址分析,揭示了强制类型转换的实质是父类指针赋值,以及虚继承如何避免重复基类问题。文章最后图示了虚继承类对象的内存分布结构。原创 2025-10-23 18:03:22 · 329 阅读 · 0 评论 -
libco——源码分析(一)
总体的网络服务器操作流程是这样的:fill:#333;co_pollother增加epoll_fd监听文件描述符将自己的协程增加到计时队列中发送网络消息或者其他被激活的文件描述符放到激活队列loop取出超时队列中超时的任务放到超时队列将超时队列黏贴到激活队列末尾激活元素的回调函数处理resume挂起的协程loop写入收到消息的数据并返回上层loopco_pollother。原创 2024-01-23 18:00:19 · 1246 阅读 · 1 评论 -
shared_ptr多线程安全性
shared_ptr的计数对象是原子的,但是有一个问题,就是在析构之前shared_ptr调用父类__shared_ptr的析构,__shared_ptr有一个__shared_count成员,这个成员的析构里面调用了其指针成员_Sp_counted_base的方法_M_release,而这个_M_release里面则调用__gnu_cxx::__exchange_and_add_dispatch方法对计数进行-1操作,如果原来的计数为1那么就调用_M_dispose方法将对象执行删除了。原创 2024-01-12 14:56:43 · 765 阅读 · 0 评论 -
TCP网络服务器设计
最近设计了一个网络服务器程序,对于4C8G的机器配置,TPS可以达到5W。业务处理逻辑是简单的字符串处理。服务器接收请求后对下游进行类似广播的发送。在此分享一下设计方式,如果有改进思路欢迎大家交流分享。程序运行在CentOS7.9操作系统上,GCC使用4.8.5版本,网络是千兆网。原创 2023-08-07 11:11:15 · 643 阅读 · 0 评论
分享