自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(199)
  • 收藏
  • 关注

原创 C++面试题16_共享内存(shm)和mmap 的区别?

很多人会把“共享内存(shm)”和 “mmap” 混在一起,因为它们底层都和有关,而且性能都非常高,共享内存:以“内存”为中心,mmap:以“文件”为中心。一、共享内存(shm)shmget()shmat()或者:shm_open()mmap()

2026-05-29 11:06:19 20

原创 C++面试5_ TCP 粘包2(工业级)

LOG_DEBUGGING("启动接收数据线程");// 数据长度,不包含头。// 读取头数据,先收固定长度包头。// 读取消息体,(从包头取长度)

2026-05-05 16:11:59 192

原创 共享内存实例

环形队列的核心思想是:用固定空间用两个指针通过取模实现空间循环避免内存移动实现高效生产者-消费者通信普通队列是:空间向前增长环形队列是:指针向前走,空间在循环。

2026-03-02 14:11:22 712

原创 为什么要用线程池(C++)?

Worker Threads | 多个 while(true)ThreadPool pool(3);// 3 个工作线程。执行结果如下: ./threadpool_demo。❌ 线程数量不可控,可能把系统拖死。❌ 不好统一管理、退出、回收。1️⃣ 定义线程池类。

2026-02-05 19:32:02 788

原创 大小端总结

小端 CPU:低地址放低位;大端 CPU:低地址放高位。协议解析时永远不要“相信 CPU 的端序”,而要自己按字节拼。

2026-01-23 10:51:32 396

原创 Lambda 表达式

);🔧。

2026-01-19 20:20:04 670

原创 unique_lock<mutex> uLock 的用法

是 C++11 提供的一种,常用于多线程同步场景。本质上是一个可控制加锁/解锁时机、可转移所有权的锁对象。

2026-01-06 09:21:37 233

原创 解析OSI 七层模型

🌐 一、OSI 七层模型(从下往上)| 层级 | 名称 | 主要作用 | 协议示例 || **7** | 应用层 | 为应用提供网络服务 | HTTP、FTP、DNS、SMTP || **6** | 表示层 | 数据格式、加密解密、压缩 | JPEG、MP3、TLS(部分) |

2025-12-05 22:28:48 753

原创 C++_面试15_零拷贝

零拷贝(Zero-Copy)是一种减少或消除 CPU 内存复制的技术,使数据在。数据只在内核内部移动,或者直接经 DMA 发送到 NIC,大幅减少 CPU 开销与上下文切换。

2025-11-17 08:00:38 694 1

原创 C++_面试题15_lambda表达式

1)lambda 表达式3.在 make_printer 中填写lambda,使得 main 中调用 printer()能正确输出 42,并且不发生悬空引用或未定义行为。至少给出两种不同写法,并解释其差异(例如:值捕vsstd::shared_ptr 等)。int x= 42:autof=/*TODO: 在这里写一个lambda *///要求:返回的lambda在的数返回后仍能正确打印42retumn fprinter();// 期望输出:42int x = 42;

2025-11-16 10:22:44 441

原创 C++_面试题_21_字符串操作

/ 最多 100 个不同单词。//判断token 是否已经出现。

2025-11-14 22:36:42 480

原创 C++_面试题13_QVector和QList的区别

QVector 的迭代器只要遇到内存重分配(扩容)就全部失效。即使没有扩容,insert/erase 也会让插入/删除位置之后的迭代器失效。clear() 也会失效。这是因为 QVector 底层是连续内存结构。

2025-11-14 11:44:44 785

原创 C++_面试题10_汇总1

sizeof 和 strlen 的区别?

2025-11-14 10:22:22 426

原创 C++面试题_12_SOLID原则

SOLID 是面向对象设计的五条原则组合,有助于提高代码可维护性、可扩展性与可测试性。每条原则都简短明确 —— 下面逐条说明并给出简洁的 C++ 风格示例与常见陷阱。

2025-11-13 08:50:04 570

原创 c++面试11_什么是高内聚低耦合

🧩 一、核心概念→ 模块内部紧密合作→ 模块之间松散关联。

2025-11-12 08:30:41 639

原创 C++面试10反转链表

/ 保存下一个节点。// 移动 prev。// 移动 curr。// prev 是新的头节点。// 创建测试链表 1->2->3->4->5。cout << "原链表: ";cout << "反转后: ";原链表: 1 2 3 4 5。反转后: 5 4 3 2 1。

2025-11-10 10:25:11 342

原创 C++面试题7_进程间通信的方式有哪些?

常见的进程间通信方式有管道(匿名管道、命名管道)、消息队列、共享内存、信号量、信号、Socket、内存映射文件等。其中:管道简单但只能用于亲缘进程;消息队列支持结构化消息;共享内存效率最高;信号量用于同步;Socket 可跨主机通信。

2025-11-07 09:17:11 658

原创 C++面试6_智能指针

智能指针是对原始指针(raw pointer)的封装,用于。

2025-11-07 07:52:07 599

原创 C++面试4-线程同步

std::mutex二、各类同步机制示例。

2025-11-06 17:13:57 616

原创 C++面试5_ TCP 粘包

TCP 是面向字节流(byte stream)的协议,它只保证数据按序传输、不丢不重,但不保证消息边界。也就是说,TCP 看到的是一串连续的字节流,而不是一条条独立的“消息”。因此,在应用层上发送的数据,到了接收方时,可能会出现以下几种情况:发送方接收方。

2025-11-06 15:00:26 718

原创 C++面试3_多重继承

多重继承(Multiple lnheritance)是指一。缺点:容易引起命名冲突、二义性、以及“菱形继承”问题。这样 c 同时拥有 A和 B的成员。

2025-11-06 07:58:23 544

原创 C++面试题2_多态

C++多态让同一个接口(函数调用)在不同对象上表现出不同的行为静态多态靠编译器决议(重载、模板),动态多态靠运行时虚表机制(virtual)。(Polymorphism)是面向对象编程的三大特性之一(封装、继承、多态),它让同一个接口在不同对象上表现出不同的行为。void speak() override { cout << "喵喵喵" << endl;,则只会调用 Animal::~Animal(),不会调用 Dog::~Dog(),4.调用实际函数(Dog::speak()或cat::speak())

2025-11-06 07:13:27 898

原创 C++面试题1—析构虚函数

虚析构函数保证了“通过基类指针删除派生类对象”时,调用真正的析构过程。// ✅ 调用 Derived 和 Base 析构函数。// ⚠️ 只调用 Base 析构函数。派生类部分(如成员对象、动态分配资源)没有被释放;操作会根据实际对象类型调用正确的析构函数链。当类中有虚函数时,编译器会为对象维护一个。删除对象时,如果析构函数是虚函数,在 C++ 中,多态依赖。

2025-11-05 08:57:20 322

原创 mysql server 9.4 windows安装教程(sqlyog 下载)

​​​​​打开命令提示符:按 Win + R 键,输入 cmd 并按回车。

2025-10-15 13:56:54 451

原创 QtCreator项目转VS工程

3、此时大家就会发现该项目所在文件夹目录下生成了一个项目名.vcxproj的文件,双击打开,就在。1、首先先将qmake.exe文件所在的bin目录添加到环境变量path下。

2025-09-15 10:40:02 399

原创 C++_面试4_析构函数的执行时机

局部对象→ 析构在main()返回之前静态/全局对象→ 析构在main()返回之后动态对象→ 析构在delete时执行(如果没delete,就不会调)程序启动│├─► (1)构造全局/静态对象(静态存储期)│▼进入 main()│├─► (2)进入某个作用域时,构造局部对象││ ... 程序运行 ...│├─► (3)离开作用域,局部对象析构│▼main() 结束│├─► (4)析构 main 里的局部对象(自动存储期)▼。

2025-08-10 08:07:22 453

原创 QT的moveToThread 用法

Q_OBJECT// ... 执行耗时任务主线程中创建并启动线程 + 移动对象// 将 worker 移动到新线程// 当线程启动后,调用 worker 的槽函数// 处理线程完成时清理// 启动线程。

2025-07-23 20:35:59 1019

原创 Qt 的 事件队列

Qt 的事件队列是一个线程安全的机制,它确保事件(包括跨线程信号)按照顺序、安全地投递给合适的对象,只要该对象所在的线程在运行事件循环。

2025-04-16 22:28:53 1228

原创 QT的信号槽的直接触发,队列触发,自动触发

直接触发:信号发射后,槽函数立即执行(通常用于同一线程)。队列触发:信号被放入接收线程的事件队列,槽函数在事件循环中执行(通常用于跨线程)。自动触发:Qt会根据线程关系自动选择触发方式。

2025-04-16 22:20:13 1236

原创 opencv_23_高斯模糊

imshow("图像模糊2", dst);

2024-04-29 11:13:58 2554 1

原创 opencv_22_图像卷积操作

imshow("图像模糊", dst);

2024-04-29 10:45:48 655

原创 opencv_21_直方图均衡化

imshow("直方图均衡化演示", dst);imshow("灰度图像", gray);

2024-04-29 10:03:38 556

原创 opencv_20_二维直方图

h < hbins;h++)s < sbins;s++)-1);

2024-04-29 09:34:25 355

原创 opencv_19_图像直方图

Mat b_hist;Mat g_hist;Mat r_hist;i++)直方图:

2024-04-29 08:58:30 1356

原创 opencv_18_视频文件摄像头使用

Mat frame;break;break;

2024-04-28 14:24:40 557 1

原创 opencv_17_翻转与旋转

imshow("图像旋转", dst);

2024-04-28 11:00:54 651

原创 opencv_16_图像像素类型转换与归一化

imshow("图像数据归一化", dst);

2024-04-28 09:27:49 521 1

原创 Qt Quick centerIn和fill 的用法

1)Qt Quick centerIn和fill 的用法:width:300;height:200;width: 120;height:120;radius:8;

2024-04-25 14:32:08 292

原创 Opencv_15_鼠标操作与响应

setMouseCallback("鼠标绘制", on_draw,(void*)(&image));namedWindow("鼠标绘制", WINDOW_AUTOSIZE);imshow("ROI区域", image(box));imshow("鼠标绘制", image);imshow("鼠标绘制", image);imshow("鼠标绘制", image);

2024-04-24 17:48:00 338

原创 Opencv_14_多边形填充与绘制

/该函数不能进行填充。imshow("多边形绘制", canvas);

2024-04-24 15:29:15 374 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除