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
以下是
C++
相关的文章
2025-09-10
C++ 实现 生产者-消费者 模型
0 目标 使用 C++ 手搓一个“生产者-消费者”模型,涉及 std::thread、std::queue、std::mutex、std::condition_variable。 1 简单的 生产者-消费者 模型 生产者生产数据,存放在队列中,如果队列满了就阻塞住;消费者消费数据,从队列中取出,如果
2025-09-10
2
0
0
知识点
C++
2025-09-10
数据结构:树
1 树的基本概念 节点 (Node): 树的基本组成部分,每个节点存储数据和指向其他节点的链接。图中的每个方框都是一个节点。 根节点 (Root): 树的顶端节点,没有父节点。一棵树只有一个根。 父节点 (Parent) & 子节点 (Child): 一个节点指向的节点是它的子节点,指向它的节点是它
2025-09-10
0
0
0
知识点
C++
2025-09-10
哈希冲突了怎么办
0 结论 哈希冲突是不可避免的,处理它的主流方法有链地址法和开放定址法。 链地址法是最常用的方法,STL 的 unordered_map 就采用它。它将每个桶实现为一个链表,所有哈希到同一位置的元素都放在这个链表里。这种方法实现简单,性能稳定,但需要额外的指针空间。 开放定址法则将所有元素都存放在数
2025-09-10
0
0
0
知识点
C++
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++
知识点
1
2
3
4
5