
C++ Python
文章平均质量分 78
C++ Python相关的知识
Livan.Tang
这个作者很懒,什么都没留下…
展开
-
Python修饰器
Python装饰器是一种强大的元编程工具,它能够:在不修改原函数代码的情况下扩展功能保持代码干净和可复用实现横切关注点(如日志、权限等)的集中管理通过组合装饰器创建复杂行为理解装饰器是掌握Python高级编程的重要一步,它广泛应用于Web框架(如Flask、Django)、测试框架和各种库中。原创 2025-05-25 21:16:38 · 385 阅读 · 0 评论 -
C++ STL6大组件
STL提供了一些常用的仿函数在// 算术仿函数// 加法// 8// 比较仿函数// 降序排序// 逻辑仿函数// false// 自定义仿函数// nums 变为 {1, 4, 9, 16}原创 2025-05-24 23:54:42 · 299 阅读 · 0 评论 -
C++单例模式详解
C++中的单例模式实现需要考虑线程安全、生命周期管理、可测试性等多方面因素。在C++11及以上版本中,推荐使用局部静态变量的实现方式,它简洁、安全且高效。对于更复杂的需求,可以考虑模板化单例或依赖注入等高级技术。原创 2025-05-23 19:33:43 · 604 阅读 · 0 评论 -
C++ 设计模式
设计模式是在软件工程中常见的问题的解决方案,它们是经过多年实践和总结出来的一套标准化的方法。创建型模式主要关注对象的创建过程,它们提供了创建对象的机制,增加了程序的灵活性和可重用性。行为型模式专注于算法和对象间职责的分配,它们定义了对象间的通信模式。:允许创建一个复杂对象的步骤一步步进行,而不同的构建者可以产生不同的结果。:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。:给定一个语言,定义它的文法的一种表示,并定义一个解释器。:提供一个统一的接口,用来访问子系统中的一群接口。原创 2025-05-23 14:49:57 · 980 阅读 · 0 评论 -
C++线程池的使用
线程池(Thread Pool)是一种多线程处理形式,它预先创建一组线程并保存在"池"中,当有任务到来时,从池中取出一个线程来执行任务,任务执行完毕后线程返回池中等待下一个任务,而不是销毁线程。:当某个线程的任务队列为空时,可以从其他线程的任务队列尾部"窃取"任务执行。:通过重复利用已创建的线程,减少线程创建和销毁的开销。:任务到达时可以直接使用已有线程,无需等待线程创建。:负责创建、销毁线程,管理线程生命周期。:每个线程维护自己的任务队列,减少竞争。:固定线程数,简单任务队列。任务被封装并放入任务队列。原创 2025-05-23 14:34:15 · 591 阅读 · 0 评论 -
C++ 常见知识积累
是一种可以指向函数的指针变量,允许你将函数作为参数传递、存储、动态调用等。它在回调机制、策略模式、动态调度等场景中非常常见。(inline 函数对象)的机制,写法简洁、灵活,非常适合用于临时函数逻辑、回调、STL 算法等场景。的用法在现代 C++ 中。原创 2025-05-21 16:30:59 · 174 阅读 · 0 评论 -
C++ 中的主要内存存储区
空间大,适合大对象或不确定生命周期的对象。:内存的高地址向低地址方向增长。:内存的低地址向高地址方向增长。存取速度快(在栈帧中连续分配)段:已初始化的全局/静态变量。段:未初始化的全局/静态变量。存储空间较小(通常几 MB)(多个程序共用同一个代码段)函数的返回地址、临时变量。,写入会导致程序崩溃。:由编译器自动完成。生命周期受作用域限制。容易内存泄漏或野指针。:从程序开始到结束。原创 2025-05-19 14:04:24 · 314 阅读 · 0 评论 -
Hashmap 和 map的区别
结论: 如果key不用排序,无脑用hashmap就行。原创 2025-05-15 15:17:08 · 153 阅读 · 0 评论 -
LeeCode刷题笔记
编程语言基础课 | 代码随想录LeetCode 热题 100 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台CSONCodeTop 面试题目总结原创 2025-05-15 09:25:22 · 120 阅读 · 0 评论 -
C++ 智能指针
类型拥有权数量支持拷贝?自动释放引用计数循环引用问题unique_ptr1❌✅❌❌shared_ptr多✅✅✅⚠️(可能)weak_ptr0(观察者)✅❌❌❌。原创 2025-04-08 14:21:18 · 396 阅读 · 0 评论 -
C++ 原子变量与线程锁
一个“原子”操作就是:要么全部执行完,要么根本不执行,中间不会被其他线程打断。这就像存钱的时候,你一次性把钱塞进账户,中间不可能别人跑进来插队。原创 2025-04-08 11:50:43 · 370 阅读 · 0 评论 -
C++ 线程锁总结
多锁一定要统一加锁顺序或使用。推荐使用。如果需要灵活控制锁生命周期,用defer_lock。避免手动 lock 多个 mutex,极易出错。💡 死锁在运行中不是必然发生,而是取决于线程调度的时机和顺序。锁类型可重入支持超时支持共享读自动解锁推荐使用方式std::mutex❌❌❌❌lock_guard✅❌❌❌特殊场景使用❌✅❌❌超时控制场景❌❌✅❌多读少写lock_guard❌❌❌✅简单自动管理锁❌✅❌✅灵活控制锁。原创 2025-04-08 11:41:58 · 648 阅读 · 0 评论