<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[TsuanS13的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/TsuanS13</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; TsuanS13]]></copyright><item><title><![CDATA[图像中的 Gamma 是什么？一文彻底理解 Gamma 编码、线性工作流与显示原理]]></title><link>https://blog.csdn.net/TsuanS13/article/details/149271161</link><guid>https://blog.csdn.net/TsuanS13/article/details/149271161</guid><author>TsuanS13</author><pubDate>Fri, 11 Jul 2025 11:59:27 +0800</pubDate><description><![CDATA[Gamma 是一套非线性亮度映射方法，贯穿图像的编码、处理、显示全过程，既要服务人眼感知，又要保证物理计算的真实。]]></description><category></category></item><item><title><![CDATA[./configure、 make、 make install]]></title><link>https://blog.csdn.net/TsuanS13/article/details/149019094</link><guid>https://blog.csdn.net/TsuanS13/article/details/149019094</guid><author>TsuanS13</author><pubDate>Mon, 30 Jun 2025 11:16:47 +0800</pubDate><description><![CDATA[aclocal # 设置 m4 环境 autoconf # 生成 configure 脚本 automake --add-missing # 生成 Makefile.in./configure # 检查系统，生成 Makefilemake # 编译源码make install # 安装程序./configure && make && make install 是一种通用的开源软件安装规范流程，配置 → 编译 → 安装，背后是 Autotools 工具链的支撑。]]></description><category></category></item><item><title><![CDATA[深入理解 Git 底层机制：指针（Refs）、提交（Commit）与分支的关系]]></title><link>https://blog.csdn.net/TsuanS13/article/details/148339897</link><guid>https://blog.csdn.net/TsuanS13/article/details/148339897</guid><author>TsuanS13</author><pubDate>Fri, 30 May 2025 15:55:53 +0800</pubDate><description><![CDATA[Refs 是 Git 中用来指向某个 commit 的“指针”，本质上是存储在.git/refs目录下的文本文件，内容是 commit 的哈希值。分支（branch）：存在，例如文件里存的就是 master 分支当前指向的提交哈希。标签（tag）：存在，比如v1.0标签指向某个稳定的提交。远程分支（remote-tracking branch）：存在，如指向远程仓库的 master 分支当前的提交。merge-base指的是两个提交的“最近共同祖先”（lowest common ancestor）]]></description><category></category></item><item><title><![CDATA[编解码器vs容器]]></title><link>https://blog.csdn.net/TsuanS13/article/details/147305289</link><guid>https://blog.csdn.net/TsuanS13/article/details/147305289</guid><author>TsuanS13</author><pubDate>Thu, 17 Apr 2025 14:15:10 +0800</pubDate><description><![CDATA[【代码】编解码器vs容器。]]></description><category></category></item><item><title><![CDATA[【C++】多线程编程大礼包]]></title><link>https://blog.csdn.net/TsuanS13/article/details/147014932</link><guid>https://blog.csdn.net/TsuanS13/article/details/147014932</guid><author>TsuanS13</author><pubDate>Sat, 05 Apr 2025 19:52:40 +0800</pubDate><description><![CDATA[参数传递
1. 传值

线程函数 拷贝 传入的参数
适用于 基本数据类型 或者 小对象，不会影响原变量
避免数据竞争，但可能有性能开销


三次构造
一次构造
两次构造
4. 右值引用（std::move）

线程函数 接管资源，主线程变量可能失效
适用于 大对象，防止不必要的拷贝


5. 使用 lambda 捕获

线程函数可以 直接访问外部变量
适用于 简单的逻辑，不需要额外的参数传递


6. 类成员函数作为线程函数

需要传递 对象指针，否则  指针丢失


为什么  是必须的？成员函数指针 和 ]]></description><category></category></item><item><title><![CDATA[C++ atomic 原子操作]]></title><link>https://blog.csdn.net/TsuanS13/article/details/147014243</link><guid>https://blog.csdn.net/TsuanS13/article/details/147014243</guid><author>TsuanS13</author><pubDate>Sat, 05 Apr 2025 18:38:00 +0800</pubDate><description><![CDATA[在多线程编程中，通常我们需要多个线程共享数据。但如果不加以控制，多个线程同时访问同一数据，可能会导致数据不一致或竞争条件（race conditions）。为了解决这个问题，我们引入了。]]></description><category></category></item><item><title><![CDATA[async、future、shared_future、promise、packaged_task练习题目]]></title><link>https://blog.csdn.net/TsuanS13/article/details/147012077</link><guid>https://blog.csdn.net/TsuanS13/article/details/147012077</guid><author>TsuanS13</author><pubDate>Sat, 05 Apr 2025 15:41:50 +0800</pubDate><description><![CDATA[std::async编写一个程序，使用std::async启动一个异步任务，该任务计算两个整数的和。主线程等待任务完成并输出结果。]]></description><category></category></item><item><title><![CDATA[C++异常处理 throw try catch]]></title><link>https://blog.csdn.net/TsuanS13/article/details/147011446</link><guid>https://blog.csdn.net/TsuanS13/article/details/147011446</guid><author>TsuanS13</author><pubDate>Sat, 05 Apr 2025 14:50:07 +0800</pubDate><description><![CDATA[C++ 异常处理机制提供了一种在程序运行时捕获错误或异常情况的方式。异常处理的目的是使得程序在遇到错误时能够优雅地终止或恢复，并防止程序出现崩溃。C++ 使用trythrow, 和catch关键字来实现异常处理。C++ 标准库定义了一些通用的异常类，它们位于头文件中。这些异常类帮助程序员识别和处理不同类型的错误。C++ 标准库异常类通常都继承自，这是所有标准异常类的基类。]]></description><category></category></item><item><title><![CDATA[future、shared_future、packaged_task、promise常用接口总结]]></title><link>https://blog.csdn.net/TsuanS13/article/details/147008996</link><guid>https://blog.csdn.net/TsuanS13/article/details/147008996</guid><author>TsuanS13</author><pubDate>Sat, 05 Apr 2025 11:03:59 +0800</pubDate><description><![CDATA[用于异步获取任务的结果，结果只能被获取一次。对象不可复制，但可移动。]]></description><category></category></item><item><title><![CDATA[关于 `std::packaged_task` 的总结]]></title><link>https://blog.csdn.net/TsuanS13/article/details/147003283</link><guid>https://blog.csdn.net/TsuanS13/article/details/147003283</guid><author>TsuanS13</author><pubDate>Fri, 04 Apr 2025 21:35:21 +0800</pubDate><description><![CDATA[是一个模板类，用于包装一个可调用对象（比如函数、lambda 表达式等）。是一个包装器，能够异步执行某个任务，并提供结果的获取机制。对象，允许你从任务中获取结果。你需要进行以下几个步骤来使用。]]></description><category></category></item><item><title><![CDATA[单例模式（懒汉模式/饿汉模式）]]></title><link>https://blog.csdn.net/TsuanS13/article/details/146853614</link><guid>https://blog.csdn.net/TsuanS13/article/details/146853614</guid><author>TsuanS13</author><pubDate>Mon, 31 Mar 2025 16:17:56 +0800</pubDate><description><![CDATA[【代码】单例模式（懒汉模式/饿汉模式）]]></description><category></category></item><item><title><![CDATA[C++ MySQL 常用接口（基于 MySQL Connector/C++）]]></title><link>https://blog.csdn.net/TsuanS13/article/details/146116673</link><guid>https://blog.csdn.net/TsuanS13/article/details/146116673</guid><author>TsuanS13</author><pubDate>Sat, 08 Mar 2025 15:15:49 +0800</pubDate><description><![CDATA[即使程序崩溃，数据也已经修改了。用于创建 MySQL 连接对象。创建一个 SQL 语句执行对象。如果希望多个 SQL 语句。获取查询结果，并读取列值。释放资源，避免内存泄漏。MySQL 默认启用。指定要操作的数据库。]]></description><category></category></item><item><title><![CDATA[SQL 注入 （C++向）]]></title><link>https://blog.csdn.net/TsuanS13/article/details/146104933</link><guid>https://blog.csdn.net/TsuanS13/article/details/146104933</guid><author>TsuanS13</author><pubDate>Fri, 07 Mar 2025 20:55:51 +0800</pubDate><description><![CDATA[预处理语句（Prepared Statement）可以。，攻击者通过在输入字段中注入恶意 SQL 代码，来。，从而窃取数据、修改数据，甚至破坏数据库。，这样才能从根本上防止 SQL 注入！即使攻击者获得了访问权限，也应该。，攻击者可以直接绕过登录验证。否则攻击者可以通过错误信息。SQL 注入是一种常见的。（阻止恶意 SQL 语句），攻击者就能获取整个。]]></description><category></category></item><item><title><![CDATA[C++ using 关键字总结（对比 typedef）]]></title><link>https://blog.csdn.net/TsuanS13/article/details/146077319</link><guid>https://blog.csdn.net/TsuanS13/article/details/146077319</guid><author>TsuanS13</author><pubDate>Thu, 06 Mar 2025 18:31:12 +0800</pubDate><description><![CDATA[是 C++11 引入的关键字，可用于。更清晰、功能更强大。]]></description><category></category></item><item><title><![CDATA[C++ 文件操作接口表格总结]]></title><link>https://blog.csdn.net/TsuanS13/article/details/146037552</link><guid>https://blog.csdn.net/TsuanS13/article/details/146037552</guid><author>TsuanS13</author><pubDate>Wed, 05 Mar 2025 10:58:14 +0800</pubDate><description><![CDATA[这张表涵盖了 C++ 文件操作的核心 API，让你可以快速查阅常用的文件流操作！C++ 文件操作接口主要来自。]]></description><category></category></item><item><title><![CDATA[C\C++ 编程中：相对路径 + 绝对路径]]></title><link>https://blog.csdn.net/TsuanS13/article/details/146033303</link><guid>https://blog.csdn.net/TsuanS13/article/details/146033303</guid><author>TsuanS13</author><pubDate>Wed, 05 Mar 2025 09:15:12 +0800</pubDate><description><![CDATA[电脑硬盘E盘下，建文件夹“test”，"test"下建立子文件夹“file”，"file"下建子文件夹“data”,./data/xxx   表示当前路径的下下一级路径，相当于 E:\test\file\data\xxx。./data  表示当前路径下一级路径，相当于E:\test\file\data。./    表示当前路径，相当于E:\test\file。../  表示当前路径的上一级路径，相当于E:\test。或者，当前路径E:\test\file下，相对路径表示为。更多指向上级路径的表示以此类推。]]></description><category></category></item><item><title><![CDATA[C++ JSON库的使用示例]]></title><link>https://blog.csdn.net/TsuanS13/article/details/146017349</link><guid>https://blog.csdn.net/TsuanS13/article/details/146017349</guid><author>TsuanS13</author><pubDate>Tue, 04 Mar 2025 15:33:17 +0800</pubDate><description><![CDATA[你可以直接复制这段代码，运行看看！]]></description><category></category></item><item><title><![CDATA[std::allocator_traits 能做但 std::allocator 不能的事情]]></title><link>https://blog.csdn.net/TsuanS13/article/details/145971817</link><guid>https://blog.csdn.net/TsuanS13/article/details/145971817</guid><author>TsuanS13</author><pubDate>Sun, 02 Mar 2025 22:29:05 +0800</pubDate><description><![CDATA[仍然在某些简单场景下可用，但现代 C++ 开发。在现代 C++ 中，某些分配器需要支持。如果你希望 STL 容器可以使用你的。，而 STL 容器默认使用的是。假设你要实现一个内存池。]]></description><category></category></item><item><title><![CDATA[C++多态基本介绍]]></title><link>https://blog.csdn.net/TsuanS13/article/details/145952161</link><guid>https://blog.csdn.net/TsuanS13/article/details/145952161</guid><author>TsuanS13</author><pubDate>Sun, 02 Mar 2025 12:52:12 +0800</pubDate><description><![CDATA[的名字相同，但参数列表不同，编译器根据参数类型和数量来选择正确的函数。类的操作符行为，使其更直观。，可以让不同的对象有不同的表现形式。（OOP）的核心特性之一，指的是。，在运行时动态决定调用哪个函数。模板支持泛型编程，在。]]></description><category></category></item><item><title><![CDATA[【C++】深入理解C++虚函数与纯虚函数]]></title><link>https://blog.csdn.net/TsuanS13/article/details/145954499</link><guid>https://blog.csdn.net/TsuanS13/article/details/145954499</guid><author>TsuanS13</author><pubDate>Sat, 01 Mar 2025 21:54:32 +0800</pubDate><description><![CDATA[虚函数是在基类中使用关键字virtual声明的成员函数，它允许派生类对其进行重写（Override），实现运行时多态。当通过基类指针或引用调用虚函数时，实际调用的是对象类型对应的派生类中的函数，这个过程称为动态绑定（Dynamic Binding）或晚绑定（Late Binding）。虚函数重写指的是派生类中提供一个函数版本，该版本与基类中具有相同名称、相同返回类型和相同参数列表的虚函数相匹配。通过这种方式，派生类可以提供自己特定的实现，替换或扩展基类的行为。]]></description><category></category></item></channel></rss>