logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

C++ Lambda 从入门到实战

如果你写过 C++,大概率遇到过这种场景:想给 `std::sort` 传个自定义比较规则,结果得专门写个结构体重载 `operator()`;想在一个函数里临时搞个回调,又得去类外面定义一个全局函数。C++11 引入的 **Lambda 表达式** 就是为了干掉这种“为了一碟醋包一顿饺子”的写法。这篇文章我会从最基础的语法讲起,然后深入到捕获方式、泛型 Lambda、可变修饰,最后把那些**面试

#c++#数据结构#visualstudio
C/C++ 文件操作全攻略:Linux、Windows、macOS 三平台实战

本文全面介绍了C/C++在Linux、Windows和macOS上的文件操作方法,涵盖三个层次: C标准库方式:包括传统的fopen/fread/fwrite、安全增强的fopen_s(C11 Annex K)以及Windows特有的_fsopen共享模式 C++标准库方式:推荐使用<fstream>进行面向对象操作,详细演示了文本/二进制文件读写及各种打开模式 C++17 filesystem:

#c语言#c++#linux +2
C++获取鼠标实时坐标的底层机制与实现路径

本文深入探讨了Windows平台下获取鼠标实时坐标的底层机制与实现方法。首先介绍了两种坐标系统(屏幕坐标和客户区坐标)的区别及多显示器环境下的注意事项,包括负值处理和DPI虚拟化问题。随后详细分析了四种实现方案:1)使用GetCursorPos直接查询内核数据;2)通过WM_MOUSEMOVE窗口消息获取客户区坐标;3)利用TrackMouseEvent追踪鼠标进出窗口事件;4)通过低级鼠标钩子W

#c++#windows#visual studio
C++ 局域网 双向聊天室(Winsock2 + 多线程)

本文介绍了一个基于C++的局域网双向聊天室实现方案,采用Winsock2网络编程和多线程技术。该聊天室支持服务端与客户端之间的实时双向通信,通过独立接收线程避免了消息收发阻塞问题。关键设计包括: 采用TCP协议保证可靠传输 使用多线程分离收发逻辑(主线程处理发送,子线程处理接收) 通过atomic<bool>实现线程安全退出机制 支持输入"quit"命令优雅退出 实现要点: 服务端需完成bind/

#c++
在 Windows 上用 C++ 搞一个打开/保存文件对话框

本文介绍了在Windows平台使用C++实现文件打开/保存对话框的两种方法。对于MFC项目,推荐使用封装好的CFileDialog类,通过简单的参数配置即可实现文件筛选、路径校验等功能;对于非MFC项目,则可以使用Win32 APIGetOpenFileName/GetSaveFileName,但需注意过滤器字符串需用空字符分隔而非竖线。文章特别强调了常见陷阱:如MFC过滤器字符串必须双竖线结尾、

#c++
到底了