C++中的内存对齐

摘要: 在计算机科学中,内存对齐是一种数据存储方式,它要求某些类型的数据必须存储在特定地址上。这种要求是由硬件架构决定的,不同的处理器可能有不同的对齐要求 内存对齐的目的和作用: 性能提升和平台兼容性 性能提升 -- 减少CPU的访问次数,优化内存带宽利用 平台兼容性 -- 硬件限制和移植性 C++中的内存 阅读全文
posted @ 2026-05-12 14:58 新西兰程序员 阅读(3) 评论(0) 推荐(0)

C++中的static关键字使用以及全局变量

摘要: 今天想讲解一下C++中的static关键字的使用 改变生命周期和改变作用域(链接属性) static关键字的作用包括3条 1. static最重要的功能是隐藏 2. static变量存放在静态存储区,所以它具备持久性 3. 也是因为static变量存放在静态存储区,所以它默认值是0 全局变量 我们知 阅读全文
posted @ 2026-05-08 15:48 新西兰程序员 阅读(4) 评论(0) 推荐(0)

C++17中的结构化绑定Structured Binding

摘要: 在C++17这一个里程碑式的版本中,引入了结构化绑定structured binding 结构化绑定structured binding => 结构化绑定允许将一个复合数据类型(如 tuple, pair,map或struct)的多个元素直接绑定到单独的变量上,而无需逐一访问. 结构化绑定在编译期间 阅读全文
posted @ 2026-04-28 14:10 新西兰程序员 阅读(1) 评论(0) 推荐(0)

C++中的函数参数是指针类型, 是按值传递

摘要: 我们来看C++中函数中传入的参数是指针类型的情况, 我们来看一个例子 #include <iostream>int main(){ int* p = new int(10); testFunc(p); std::cout << *p << endl; //这里输出的是15 } void testFu 阅读全文
posted @ 2026-04-24 17:24 新西兰程序员 阅读(2) 评论(0) 推荐(0)

C++中异常处理机制中的栈展开stack unwinding

摘要: 提到C++中的栈展开,我们有必要先了解一下C++中的资源管理模式 RAII Resource Acquisition is initialization 资源获取即初始化, 是C++中管理资源生命周期的重要方式. 它是C++语言的一种管理资源、避免资源泄漏的惯用法,利用栈对象自动销毁的特点来实现,因 阅读全文
posted @ 2026-04-24 12:01 新西兰程序员 阅读(2) 评论(0) 推荐(0)

C++实现链表反转

摘要: 反转链表(Reverse Linked List)是链表中最经典,最基础,最常考的算法题之一.. 反转链表通常有2种实现方法 => 迭代和递归 迭代法 => 推荐 递归法 => 简洁但不一定高效 题目描述 给定一个单链表头指针 head, 将其原地反转,并返回新的头指针 Example: 输入 a- 阅读全文
posted @ 2026-04-17 20:23 新西兰程序员 阅读(2) 评论(0) 推荐(0)

Linux中的性能分析工具 perf 来分析C++性能

摘要: perf - Performance Analysis Tools for Linux -- 是Linux内核自带的性能分析工具,广泛用于监控系统性能,分析程序瓶颈和优化.. 它不仅能够捕获硬件事件(如 CPU周期,缓存命中/未命中), 还可以帮助开发者定位性能热点,支持用户态和内核态的全面分析. 阅读全文
posted @ 2026-04-17 18:13 新西兰程序员 阅读(2) 评论(0) 推荐(0)

C++17中新建一个类时,编译器默认生成的类成员函数

摘要: 在C++17中,如果你不显示的声明构造函数和赋值函数时,编译器会自动生成6个核心特殊成员函数: 1. 默认构造函数: 无参构造 2. 析构函数: 清理资源 3. 拷贝构造函数: 用同类的对象来初始化新的对象 4. 拷贝赋值运算符: 对象之间赋值 5. 移动构造函数(C++11/17 新增): 转移对 阅读全文
posted @ 2026-04-10 15:21 新西兰程序员 阅读(3) 评论(0) 推荐(0)

QT中的元对象系统

摘要: 元对象系统(Meta-Object System) moc是QT框架中的核心机制,非常核心,用于扩展C语言的动态特性. 简答来说,他是 C++语言和QT高级特性之间的"翻译官",负责将QT特有的语法(如 信号,槽,属性等)转换为标准的C++代码. 它主要是提供以下几个方面 运行时类型信息 (RTTI 阅读全文
posted @ 2026-03-24 17:19 新西兰程序员 阅读(7) 评论(0) 推荐(0)

Leetcode 114 - 二叉树展开为链表

摘要: 这道题是要把一个二叉树,展开为一个单链表, 它的要求有2点 1. 展开后的单链表也同样适用TreeNode, 这个单链表左子指针始终为null, 右子指针指向链表中的下一个结点 2. 展开后的单链表应该与二叉树的先序遍历(先根遍历,也就是 根节点->左节点->右节点)顺序相同 拿到这个题目后,我们来 阅读全文
posted @ 2025-07-23 16:48 新西兰程序员 阅读(19) 评论(0) 推荐(0)