Home
Interview
工作经历
Q&A
LeetCode
高频考题
面试经典150题
C++
知识点
STL
基础
Python
Django
基础
Linux
性能分析 tools
Windows
Course
李宏毅 ML/DL
Linear Algebra
Archives
About
疯狂的TalentQ
累计撰写
102
篇文章
累计创建
0
个标签
累计收到
0
条评论
栏目
Home
Interview
工作经历
Q&A
LeetCode
高频考题
面试经典150题
C++
知识点
STL
基础
Python
Django
基础
Linux
性能分析 tools
Windows
Course
李宏毅 ML/DL
Linear Algebra
Archives
About
目 录
CONTENT
最新文章
2025-09-10
C++ std::vector 扩容机制
当向 std::vector 添加新元素(如使用 push_back())而当前容量(capacity)不足时,会触发以下机制: 容量计算:容器会分配一块新的、更大的内存空间。新容量的计算遵循几何增长策略(通常为旧容量的 2 倍)。这种策略是关键,它确保了多次 push_back 操作的分摊时间复杂
2025-09-10
0
0
0
C++
知识点
2025-09-10
C++ 智能指针是否是线程安全的
不是。智能指针管理的对象,需要程序员手动保证其线程安全。 其中 shared_ptr 的引用计数 是线程安全的。
2025-09-10
0
0
0
C++
知识点
2025-09-10
C++ 从编译到执行经历了什么步骤
C++ 程序从源代码到执行经历了四个核心阶段:预处理、编译、汇编和链接。 预处理阶段:预处理器处理源代码中的宏定义(#define)、条件编译(#ifdef)、头文件包含(#include)等指令,生成一个单一的、纯净的翻译单元(translation unit)。此阶段完成文本级别的替换和展开。
2025-09-10
1
0
0
C++
知识点
2025-09-10
C++ 程序一运行就挂掉一般是什么原因
C++ 程序在运行初期立即崩溃通常源于内存访问违规或未定义行为。 最常见的原因是: 解引用空指针或野指针、访问已释放的内存、数组越界、栈溢出; 由于对象生命周期管理不当(如使用未初始化对象)导致的无效内存访问。 现代 C++ 开发中,建议采用智能指针和标准容器来规避此类问题。
2025-09-10
2
0
0
C++
知识点
2025-09-09
C++ 空指针、野指针、悬空指针
0 结论 空指针:是程序员主动设置的不指向任何对象的指针,用于初始化和安全判断。 野指针:是未初始化的指针,其值是随机的,行为完全不可预测,非常危险。 悬空指针:是指针指向的内存被释放后未置空导致的,它指向一个无效的地址,解引用会导致 use-after-free 错误。 避免:始终初始化指针、释放
2025-09-09
2
0
0
知识点
C++
2025-09-09
C++ 智能指针:unique_ptr、share_ptr、weak_ptr
1 为什么要使用智能指针 在传统的C++中,动态内存的管理完全由程序员手动管理(new 和 delete)。这会带来一个巨大的风险:内存泄露。 手动管理的痛点 忘记 delete: 尤其是在函数提前返回或抛出异常时,很容易漏掉 delete。 重复 delete: 对同一个指针 delete 多次会
2025-09-09
4
0
0
知识点
C++
2025-09-09
C++ auto的原理
auto 是 C++11 引入的编译期类型推导机制。它的原理是:编译器在编译阶段,通过分析变量的初始化表达式(initializer)来自动推导出该变量的确切类型,然后用这个推导出的类型替换 auto 关键字,就像开发者手动写了那个类型一样。 关键在于:类型推导发生在编译时,不会产生任何运行时开销。
2025-09-09
1
0
0
知识点
C++
2025-09-09
操作系统:虚拟地址和物理地址
1 概念 物理地址:是内存芯片上的绝对硬件地址,直接对应着数据在内存条上的物理存储单元。 虚拟地址:是每个进程看到的、由操作系统提供的抽象化、隔离化的地址空间。 地址映射:CPU和操作系统通过内存管理单元(MMU)和页表(Page Table)协作,将进程使用的虚拟地址动态地映射到实际的物理地址上。
2025-09-09
3
0
0
知识点
C++
2025-09-09
在进行进程切换时,操作系统需要保存哪些上下文信息?
进程切换,也称为上下文切换(Context Switch),是操作系统内核将CPU从一个正在运行的进程切换到另一个就绪进程的过程。为了保证被切换走的进程将来能毫无差异地恢复执行,内核必须保存其完整的上下文。 上下文信息主要分为两大类:处理器硬件上下文和系统资源上下文。 其一,处理器硬件上下文,即CP
2025-09-09
1
0
0
知识点
C++
2025-09-05
C++ STL:算法-数值算法
C++标准模板库(STL)中的数值算法提供了一套强大而高效的工具,用于处理各种数值计算任务。这些算法定义在<numeric>头文件中,不仅能够简化代码,提高可读性,还能通过编译器的优化获得更好的性能。本文将深入探讨五个核心数值算法,从函数原型到实际应用,全面解析其工作原理和使用技巧。 1 std::
2025-09-05
0
0
0
C++
STL
1
2
3
4
5
...
11