<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Shen Mu Xin's Blog]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_44940689</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_44940689]]></copyright><item><title><![CDATA[C++中的std::allocator]]></title><link>https://blog.youkuaiyun.com/qq_44940689/article/details/147901685</link><guid>https://blog.youkuaiyun.com/qq_44940689/article/details/147901685</guid><author>qq_44940689</author><pubDate>Mon, 12 May 2025 17:58:17 +0800</pubDate><description><![CDATA[来分配内存，而是在给定的内存地址上直接调用构造函数，最后返回传入的指针（将指针类型转换为目标类型）。placement new 是C++中一种特使的内存分配的对象构造机制，它允许在已分配的内存上直接构造对象，而不是通过传统的。乍一看，这个placement new的实现什么都没干，是如何完成对象的构造呢？的标准来实现的，甚至很多开源的内存储项目可以和大多数STL容器兼容，在很多场景下，内存池是。默默工作在C++STL中的所有容器的内存分配上，很多内存池是按照。是C++的内存分配原语，默认调用C语言中的。]]></description><category></category></item><item><title><![CDATA[Linux如何安装AppImage程序]]></title><link>https://blog.youkuaiyun.com/qq_44940689/article/details/147775273</link><guid>https://blog.youkuaiyun.com/qq_44940689/article/details/147775273</guid><author>qq_44940689</author><pubDate>Wed, 07 May 2025 22:03:29 +0800</pubDate><description><![CDATA[为了后续方便使用，可以将其集成到系统菜单中，一般需要手动创建。是一种便携式的应用程序格式，无需安装即可运行。在添加完可执行权限之后，就可以直接运行了。文件放置在特定的路径（这个路径就是。可以使用下列命令，赋予可执行权限。文件作为桌面快捷方式。）中才能让Linux系统找到。在 Linux 中，]]></description><category></category></item><item><title><![CDATA[Github两种鉴权模式PAT与SSH]]></title><link>https://blog.youkuaiyun.com/qq_44940689/article/details/147587989</link><guid>https://blog.youkuaiyun.com/qq_44940689/article/details/147587989</guid><author>qq_44940689</author><pubDate>Mon, 28 Apr 2025 15:35:04 +0800</pubDate><description><![CDATA[通过 HTTPS 协议克隆和推送代码，使用用户名/密码或个人访问令牌（PAT）鉴权，所以PAT是与HTTPS协议相关的。需要更高安全性的场景（密钥比密码更难破解）。然后在页面最底层选择生成，然后复制你的Token，切记这个Token只能复制一次，如果忘了就得重新生成，然后我们就可以在推送的时候使用这个。密钥了，但每次推送的时候都需要输入一遍密钥非常不友好，可以使用下列的命令将密钥存储起来。之类的文件，说明已经存在密钥，这些文件名不同代表其使用了不同的加密算法。的是公钥，其余的是密钥，如果看到了诸如。]]></description><category></category></item><item><title><![CDATA[Ubuntu20.04安装Foxit Reader 福昕阅读器]]></title><link>https://blog.youkuaiyun.com/qq_44940689/article/details/144801953</link><guid>https://blog.youkuaiyun.com/qq_44940689/article/details/144801953</guid><author>qq_44940689</author><pubDate>Sun, 29 Dec 2024 11:01:52 +0800</pubDate><description><![CDATA[下载Foxit Reader的稳定版本。然后在当前目录中解压。]]></description><category></category></item><item><title><![CDATA[Git基本操作快速入门（30min）]]></title><link>https://blog.youkuaiyun.com/qq_44940689/article/details/144718212</link><guid>https://blog.youkuaiyun.com/qq_44940689/article/details/144718212</guid><author>qq_44940689</author><pubDate>Wed, 25 Dec 2024 21:49:50 +0800</pubDate><description><![CDATA[作为一名程序员，使用Github来进行代码的版本管理是必修课，但是这门课在学校里不会有老师来教，所以在这里总结一下Github的基本操作，本篇默认您已经安装了Git，笔者的操作系统环境为，所有演示操作均在此环境中进行，Windows同理。]]></description><category></category></item><item><title><![CDATA[Ubuntu20.04安装搜狗输入法]]></title><link>https://blog.youkuaiyun.com/qq_44940689/article/details/144716655</link><guid>https://blog.youkuaiyun.com/qq_44940689/article/details/144716655</guid><author>qq_44940689</author><pubDate>Wed, 25 Dec 2024 12:38:54 +0800</pubDate><description><![CDATA[然后将搜狗输入法选择为第一项。进入你下载的路径中然后执行。安装完成之后，安装相关依赖。，重启之后，进入输入法配置。版本的安装包进行下载。然后，在搜索框中找到。]]></description><category></category></item><item><title><![CDATA[Ubuntu双系统设置系统时间同步和默认启动项]]></title><link>https://blog.youkuaiyun.com/qq_44940689/article/details/144091327</link><guid>https://blog.youkuaiyun.com/qq_44940689/article/details/144091327</guid><author>qq_44940689</author><pubDate>Wed, 27 Nov 2024 18:13:42 +0800</pubDate><description><![CDATA[首先，安装时间同步工具然后通过互联网同步时间最后将时间机制从UTC更改为localtime。]]></description><category></category></item><item><title><![CDATA[【转载】解决Ubuntu(20.04)和Windows双系统时间不同步问题]]></title><link>https://blog.youkuaiyun.com/qq_44940689/article/details/143660232</link><guid>https://blog.youkuaiyun.com/qq_44940689/article/details/143660232</guid><author>qq_44940689</author><pubDate>Sun, 10 Nov 2024 14:06:57 +0800</pubDate><description><![CDATA[https://www.cnblogs.com/xiaotong-sun/p/16138941.html]]></description><category></category></item><item><title><![CDATA[windows环境中安装make]]></title><link>https://blog.youkuaiyun.com/qq_44940689/article/details/143415825</link><guid>https://blog.youkuaiyun.com/qq_44940689/article/details/143415825</guid><author>qq_44940689</author><pubDate>Thu, 31 Oct 2024 19:59:09 +0800</pubDate><description><![CDATA[在windows中安装make只需要三步。]]></description><category></category></item><item><title><![CDATA[cpp中容器push_back和emplace_back的区别]]></title><link>https://blog.youkuaiyun.com/qq_44940689/article/details/142970810</link><guid>https://blog.youkuaiyun.com/qq_44940689/article/details/142970810</guid><author>qq_44940689</author><pubDate>Wed, 16 Oct 2024 09:43:45 +0800</pubDate><description><![CDATA[没有创建临时对象，也不需要调用拷贝或移动构造函数。只会调用一次有参构造函数，性能上更优。时会先调用类的有参构造函数创建一个临时变量，再将这个元素拷贝或者移动到容器之中，而。只能用于直接在容器中构造新元素的情况，如果要将现有的对象添加到容器中则需要使用。调用构造函数构造对象，避免临时对象的创建和拷贝或移动。：会先构造一个临时对象（调用有参构造函数），然后将其。（调用有参构造函数）。添加到容器中（拷贝或移动）。，避免额外的拷贝或移动构造。：如果你有现有的对象，像。，导致了额外的对象拷贝。]]></description><category></category></item><item><title><![CDATA[关于cpp的lambda匿名函数那些事]]></title><link>https://blog.youkuaiyun.com/qq_44940689/article/details/142937213</link><guid>https://blog.youkuaiyun.com/qq_44940689/article/details/142937213</guid><author>qq_44940689</author><pubDate>Tue, 15 Oct 2024 10:35:21 +0800</pubDate><description><![CDATA[熟悉python的同学都知道，python中存在lambda匿名函数，这种函数往往只能完成简单的功能，常用于内嵌函数：如map()filter()sorted()等高阶函数。中的匿名函数（也称为lambda表达式）是一种可以定义的方式，它不需要显式地命名函数名称。匿名函数常用于需要传递简单函数的场景，例如回调、算法或事件处理程序。C++从C++11开始引入了 lambda表达式，并在后续版本中不断增强其功能。]]></description><category></category></item><item><title><![CDATA[Awesome C指针详解]]></title><link>https://blog.youkuaiyun.com/qq_44940689/article/details/142204036</link><guid>https://blog.youkuaiyun.com/qq_44940689/article/details/142204036</guid><author>qq_44940689</author><pubDate>Fri, 13 Sep 2024 10:30:28 +0800</pubDate><description><![CDATA[它的主要作用是能够动态地调用不同的函数，这为程序设计提供了极大的灵活性。指针进行加减时，需要将整数乘以指针类型对于的字节长度，这样指针才能正确找打其应该所在的位置。这里列举了一些比较复杂的指针的例子，可以多多揣摩，孰能生巧。指针本身是一个地址，在32位机器中占4个字节，在64位机器中占8个字节。时，表示取了整个数组的地址，类型是一种数组指针。），表示你获取了整个数组的地址，而不是某个具体元素的地址。）时，它通常会被转换为指向数组第一个元素的指针，类型是。时，表示取了整个数组的地址，类型是一种数组指针。]]></description><category></category></item><item><title><![CDATA[cpp实现字符串八股strcpy()、strlen()、strcat()、strcmp()]]></title><link>https://blog.youkuaiyun.com/qq_44940689/article/details/141713018</link><guid>https://blog.youkuaiyun.com/qq_44940689/article/details/141713018</guid><author>qq_44940689</author><pubDate>Fri, 30 Aug 2024 12:37:58 +0800</pubDate><description><![CDATA[开始的地址空间内，返回值的类型为。结束符的字符串复制到以。所指向的字符串添加到。]]></description><category></category></item><item><title><![CDATA[C++中的优先级队列priority_queue和双端队列deque用法详解]]></title><link>https://blog.youkuaiyun.com/qq_44940689/article/details/141613914</link><guid>https://blog.youkuaiyun.com/qq_44940689/article/details/141613914</guid><author>qq_44940689</author><pubDate>Tue, 27 Aug 2024 22:44:00 +0800</pubDate><description><![CDATA[deque 是双端队列（Double-Ended Queue），支持在两端进行高效的插入和删除操作。与 std::vector 类似，它也提供了随机访问功能，但与 vector 不同的是，deque 可以在头部和尾部都进行高效的插入和删除。，优先级队列priority_queue的使用和普通的队列非常类似，只不过优先级队列的底层实现是Heap能够对队列中的元素进行排序，我们可以让大的元素排在前面或者让小的元素排在前面。使用优先级队列需要包含头文件。]]></description><category></category></item><item><title><![CDATA[C++中的强制类型转换关键字static_cast、dynamic_cast、reinterpret_cast和const_cast]]></title><link>https://blog.youkuaiyun.com/qq_44940689/article/details/141570037</link><guid>https://blog.youkuaiyun.com/qq_44940689/article/details/141570037</guid><author>qq_44940689</author><pubDate>Mon, 26 Aug 2024 19:05:21 +0800</pubDate><description><![CDATA[是一种低级的、危险的转换，它可以将一种类型的指针直接转换为另一种不相关类型的指针，或者将指针转换为整数，反之亦然。用于在继承关系中进行安全的向下转换（从基类转换为派生类）。在 C++ 中，类型转换是指将一种类型的数据转换为另一种类型的数据。注意：reinterpret_cast 可能导致未定义行为，应谨慎使用，通常不推荐在一般应用程序中使用它。这些操作符比 C 风格的强制类型转换更安全和可控，提供了更精确的转换语义。限定符，但它也可以用于向对象添加这些限定符。限定的对象的值时，去掉。]]></description><category></category></item><item><title><![CDATA[C/C++前置声明]]></title><link>https://blog.youkuaiyun.com/qq_44940689/article/details/141386174</link><guid>https://blog.youkuaiyun.com/qq_44940689/article/details/141386174</guid><author>qq_44940689</author><pubDate>Wed, 21 Aug 2024 10:19:29 +0800</pubDate><description><![CDATA[C语言中，结构体类型在声明之后，未正式定义之前是一个不完全类型(incomplete type)，即只知道其是一个类型，但不知道包含哪些成员。不完全类型只能用于定义指向该类型的指针，或声明使用该类型作为形参指针类型或返回指针类型的函数。需要注意的是，在使用前置声明的时候,我们只能定义为指针，因为前置声明只是告诉编译器有这种类型，并没有给出具体的定义，所以当我们进行实例化的时候，需要为其分配内存空间,由于还不知道类型大小，这样一样会报错，使用指针就能避免这个问题。的完整定义，这样编译器会报错，因为。]]></description><category></category></item><item><title><![CDATA[【Linux】使用nm命令查看动态库包含的符号表]]></title><link>https://blog.youkuaiyun.com/qq_44940689/article/details/141181964</link><guid>https://blog.youkuaiyun.com/qq_44940689/article/details/141181964</guid><author>qq_44940689</author><pubDate>Wed, 14 Aug 2024 09:54:10 +0800</pubDate><description><![CDATA[nm命令来自name的简写。nm命令常用于查看二进制文件中的符号表，通常用于静态库和可执行文件。对于动态库（如.so文件），你可以使用nm命令结合特定的选项来查看符号表。]]></description><category></category></item><item><title><![CDATA[【Cpp筑基】五、类的继承、虚函数、抽象基类]]></title><link>https://blog.youkuaiyun.com/qq_44940689/article/details/141067994</link><guid>https://blog.youkuaiyun.com/qq_44940689/article/details/141067994</guid><author>qq_44940689</author><pubDate>Sat, 10 Aug 2024 16:33:20 +0800</pubDate><description><![CDATA[Cpp系列笔记目录。]]></description><category></category></item><item><title><![CDATA[【Cpp筑基】四、重载运算符、友元、类的转换函数]]></title><link>https://blog.youkuaiyun.com/qq_44940689/article/details/141018490</link><guid>https://blog.youkuaiyun.com/qq_44940689/article/details/141018490</guid><author>qq_44940689</author><pubDate>Thu, 08 Aug 2024 09:55:39 +0800</pubDate><description><![CDATA[【Cpp筑基】一、内联函数、引用变量、函数重载、函数模板
【Cpp筑基】二、声明 vs 定义、头文件、存储持续性作用域和链接性、名称空间
【Cpp筑基】三、对象和类
【Cpp筑基】四、重载运算符、友元、类的转换函数在C++中，运算符重载（operator overloading）允许开发者定义或重新定义标准运算符的行为，使其可以用于自定义类型（例如类）。通过运算符重载，可以让用户定义的类型与内置类型一样自然地进行运算操作，提高代码的可读性和易用性。运算符重载是在C++中提供的一种特性，允许为用户定义的类型（]]></description><category></category></item><item><title><![CDATA[【Cpp筑基】三、对象和类]]></title><link>https://blog.youkuaiyun.com/qq_44940689/article/details/140962363</link><guid>https://blog.youkuaiyun.com/qq_44940689/article/details/140962363</guid><author>qq_44940689</author><pubDate>Wed, 07 Aug 2024 15:00:23 +0800</pubDate><description><![CDATA[内联函数是一种建议编译器在每次调用该函数时，将其代码插入到调用点处，而不是进行常规的函数调用。这可以减少函数调用的开销，提高程序执行效率，尤其是对于短小的函数。]]></description><category></category></item></channel></rss>