<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_45951891的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/qq_45951891</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; qq_45951891]]></copyright><item><title><![CDATA[【Python】pip freeze用法]]></title><link>https://blog.csdn.net/qq_45951891/article/details/156649582</link><guid>https://blog.csdn.net/qq_45951891/article/details/156649582</guid><author>qq_45951891</author><pubDate>Tue, 06 Jan 2026 15:07:02 +0800</pubDate><description><![CDATA[这样就会安装与原环境完全相同版本的所有包。5.仅显示某些包（结合 grep 使用）工具中一个非常常用的命令，主要用于。，以便在其他环境中复现相同的依赖环境。文件，内容类似上面的输出结果。模式安装了本地项目（例如。这会在当前目录下生成一个。内容来源于ChatGPT。是 Python 的。1.查看当前环境的依赖包。可以导出两个不同环境的。4.比较两个环境的差异。]]></description><category></category></item><item><title><![CDATA[【Python机器学习】Supervised learning 监督学习]]></title><link>https://blog.csdn.net/qq_45951891/article/details/145761946</link><guid>https://blog.csdn.net/qq_45951891/article/details/145761946</guid><author>qq_45951891</author><pubDate>Thu, 20 Feb 2025 20:30:21 +0800</pubDate><description><![CDATA[它指的是学习X到Y或输入到输出映射的算法。监督学习的关键特点是你给你的学习算法提供了学习的例子。这包括正确的答案，即给定输入X的正确标签Y，并且通过看到正确的输入X和期望的输出标签Y对，学习算法最终学会只接受没有输出标签的输入，并给出对输出的合理准确的预测或猜测。]]></description><category></category></item><item><title><![CDATA[【C++】多态(polymorphism)]]></title><link>https://blog.csdn.net/qq_45951891/article/details/144358451</link><guid>https://blog.csdn.net/qq_45951891/article/details/144358451</guid><author>qq_45951891</author><pubDate>Mon, 09 Dec 2024 21:34:42 +0800</pubDate><description><![CDATA[指的是计算机自身彼此关联的过程，在这个过程中确定程序中的操作调用与之前操作的代码段之间的映射关系，比如：函数重载时，编译器会根据函数名和函数的参数来区别要执行的函数(哪一段代码) 这就是建立的一种映射关系，明确函数调用时会执行哪一个代码段。首先，我们需要额外的内存来存储V表，并且基类中要有一个成员指针指向V表，这样我们才能映射到正确的函数。指的是编译阶段不能确定将要调用的函数，只能在程序运行的时候才能确定将要调用的函数。这不是必需的，但你应该这样做。理解为，同一个接口，通过不同的对象调用，就有不同的效果。]]></description><category></category></item><item><title><![CDATA[【C++】虚函数]]></title><link>https://blog.csdn.net/qq_45951891/article/details/144358372</link><guid>https://blog.csdn.net/qq_45951891/article/details/144358372</guid><author>qq_45951891</author><pubDate>Mon, 09 Dec 2024 21:29:11 +0800</pubDate><description><![CDATA[基类中有虚函数时，且通过父类指针去分配子类对象的时候，在释放的时候只能通过父类指针去进行释放，在delete父类指针的时候会调用父类的析构函数，而不会调用子类的析构函数；需要把父类的析构函数定义为虚析构，那么在释放父类指针的时候也就会调用子类的析构函数了。在基类中不能为虚函数给出有意义的实现，就可以把它声明为纯虚函数，然后把它的实现留给派生类去完成。析构函数也可以声明成纯虚析构，类内写声明，不用实现；类中声明函数成员的时候，在函数的前面加上。关键字，“接口”的概念靠纯虚函数实现。关键字，则该成员为虚函数。]]></description><category></category></item><item><title><![CDATA[【C++】继承(inheritance)]]></title><link>https://blog.csdn.net/qq_45951891/article/details/144001052</link><guid>https://blog.csdn.net/qq_45951891/article/details/144001052</guid><author>qq_45951891</author><pubDate>Sat, 23 Nov 2024 23:34:00 +0800</pubDate><description><![CDATA[这样继承会导致类D继承两份类A的成员，在类D对象，想要访问类A的成员的时候，会导致访问不明确。因为类B,C各自继承类A的成员。也就是说，Dog继承了Animal，Animal所拥有的age和eat()它也就有了，就像父亲遗传给儿子一样。，虚继承之后会使在虚继承的类中多个指针(内存就会变大)，但是在最后的D类，不会再继承两份A的成员了。继承方式就是类中的三种访问属性，每种访问属性通过继承方式之后在派生类中可能会有新的属性。我们发现有重复的代码，如果我们写猫类、鸟类等都要再写一遍，这样很麻烦。]]></description><category></category></item><item><title><![CDATA[【C++】类和对象]]></title><link>https://blog.csdn.net/qq_45951891/article/details/143955287</link><guid>https://blog.csdn.net/qq_45951891/article/details/143955287</guid><author>qq_45951891</author><pubDate>Thu, 21 Nov 2024 21:43:27 +0800</pubDate><description><![CDATA[我们要学习面向对象啦那么，什么是对象呢？比如，学校里有一个个学生，这每一个个体都可以看作对象；而这些个体都是学生，可以抽象为学生类。作为学生，你我都存在一些特征。比如都有学号，都有所在的院系，有姓名、性别、年龄等等，这些属性称为。而且都会干一些事情，比如上课、干饭、打游戏，这些行为称为。还记得结构体吗？有没有发现它和类很像？除此之外没有区别，看个人的使用习惯。]]></description><category></category></item><item><title><![CDATA[【C++】常量成员]]></title><link>https://blog.csdn.net/qq_45951891/article/details/143954992</link><guid>https://blog.csdn.net/qq_45951891/article/details/143954992</guid><author>qq_45951891</author><pubDate>Thu, 21 Nov 2024 21:11:58 +0800</pubDate><description><![CDATA[常量成员，指的是在C++类中声明对象成员时可以加上const关键字这样声明的成员叫常量成员，常量成员分为常量数据成员和常量函数成员。]]></description><category></category></item><item><title><![CDATA[【C++】友元成员]]></title><link>https://blog.csdn.net/qq_45951891/article/details/143952664</link><guid>https://blog.csdn.net/qq_45951891/article/details/143952664</guid><author>qq_45951891</author><pubDate>Thu, 21 Nov 2024 19:13:52 +0800</pubDate><description><![CDATA[类的特性之一就是封装，而友元就是C++为用户提供打破这种封装的手段，友元分为友元函数和友元对象。]]></description><category></category></item><item><title><![CDATA[【C++】内联函数]]></title><link>https://blog.csdn.net/qq_45951891/article/details/143951989</link><guid>https://blog.csdn.net/qq_45951891/article/details/143951989</guid><author>qq_45951891</author><pubDate>Thu, 21 Nov 2024 18:25:50 +0800</pubDate><description><![CDATA[内联函数在这里类似于宏替换，但他们是有区别的。内联函数是一个函数，是在程序执行期间运行的，没有函数的入栈和出栈。宏替换是在预处理阶段执行的，本质是替换。内联函数有形参类型，有返回值类型和返回值。带参宏的形参没有类型，没有返回值类型也没有返回值。内存膨胀：指的是代码区的代码变多，因为使用内联函数之后，这个函数的调用就不会在栈区申请内存来运行，也就是少了入栈出栈的时间；如果是一个普通函数在调用时就会有入栈和出栈。内联函数是一个函数，是通过内存膨胀减少函数的跳转时间，以空间换时间。]]></description><category></category></item><item><title><![CDATA[【C++】从C到C++]]></title><link>https://blog.csdn.net/qq_45951891/article/details/143950656</link><guid>https://blog.csdn.net/qq_45951891/article/details/143950656</guid><author>qq_45951891</author><pubDate>Thu, 21 Nov 2024 17:21:29 +0800</pubDate><description><![CDATA[它们也是思维方式的不同，既然讲到饭了，我们就来说说做饭。面向过程是做饭的过程，比如洗菜、开火、放菜、放调料，是一个过程。菜有品种、颜色、形状等，锅有大小、性能等，人可能是不同级别的厨师等。有这样一个比喻，面向过程是炒饭，面向对象是盖饭；1.三目运算符：在C语言中返回的是一个常量，是不能被赋值的；而C++中返回的是变量，可以被赋值。4.在C++中不要返回局部变量或临时变量的地址，虽然C++能够运行变量出作用域之后再使用一次。5.C语言中const修饰的变量不能定义数组大小，而C++中可以。]]></description><category></category></item><item><title><![CDATA[大端模式和小端模式]]></title><link>https://blog.csdn.net/qq_45951891/article/details/143891841</link><guid>https://blog.csdn.net/qq_45951891/article/details/143891841</guid><author>qq_45951891</author><pubDate>Tue, 19 Nov 2024 18:02:38 +0800</pubDate><description><![CDATA[采用大端模式进行数据存放符合人类的正常思维，而采用小端方式进行数据存放利于计算机处理。有些机器同时支持两种模式，通过配置来设定实际的端模式。这个方法判别的依据是：C语言中一个数据对象的地址就是这个对象占用的字节中地址值最小的那个字节的地址。下面这个函数的功能是测试机器使用的是否为小端模式。是则返回true，否则返回false。假如short类型占用2个字节，且存储的地址为0X30。]]></description><category></category></item><item><title><![CDATA[【C++】this指针]]></title><link>https://blog.csdn.net/qq_45951891/article/details/143889695</link><guid>https://blog.csdn.net/qq_45951891/article/details/143889695</guid><author>qq_45951891</author><pubDate>Tue, 19 Nov 2024 16:49:48 +0800</pubDate><description><![CDATA[this指针并不是对象本身的一部分，它的作用域在类的内部。当类的普通函数在访问类的普通成员时，该this指针总是指向调用者对象。this指针是系统自动生成且隐藏的，我们看不到定义，但是可以使用。]]></description><category></category></item><item><title><![CDATA[【C++】拷贝构造]]></title><link>https://blog.csdn.net/qq_45951891/article/details/143889051</link><guid>https://blog.csdn.net/qq_45951891/article/details/143889051</guid><author>qq_45951891</author><pubDate>Tue, 19 Nov 2024 16:32:39 +0800</pubDate><description><![CDATA[如果类中成员有开辟动态内存的，就要重写拷贝构造，给新对象的指针重新开辟动态内存，这种形式称为“(3)如果一个函数的返回值类型是对象，在函数调用结束，返回对象的时候调用拷贝构造。这里在函数调用的时候会调用两次拷贝构造，函数传参一次，函数返回时一次。会造成重复释放动态内存问题(两个指针的地址指向同一个内存)默认拷贝构造不会重新给指针开辟内存，这种形式称为“一种特殊的构造函数，用自身这种类型来构造自身。const 是为了防止被更改。]]></description><category></category></item><item><title><![CDATA[【C++】析构函数]]></title><link>https://blog.csdn.net/qq_45951891/article/details/143887387</link><guid>https://blog.csdn.net/qq_45951891/article/details/143887387</guid><author>qq_45951891</author><pubDate>Tue, 19 Nov 2024 15:46:13 +0800</pubDate><description><![CDATA[在对象结束生命周期时，系统自动调用析构函数，清理对象空间(并不会释放对象)如果类中成员有开辟动态内存的，就要重写析构函数，里面写上动态内存的释放。函数名在与类名相同的基础上再在前面加一个~	如。]]></description><category></category></item><item><title><![CDATA[【C++】构造函数]]></title><link>https://blog.csdn.net/qq_45951891/article/details/143824836</link><guid>https://blog.csdn.net/qq_45951891/article/details/143824836</guid><author>qq_45951891</author><pubDate>Sat, 16 Nov 2024 22:36:13 +0800</pubDate><description><![CDATA[我们创建一个对象，并调用introduceMyself()方法，会报错。这样写很麻烦，当我们构造对象时，如果有办法直接运行这个初始化代码就好了。构造函数用来在创建对象时初始化对象，即为对象的成员变量赋初始值。在Java中数据基本类型如int和float会自动初始化为0。那我们定义一个初始化名字的方法。并在创建对象后首先调用它。假设你有一个Log类，它只有静态的write()方法。但在C++中你必须手动初始化所有基本类型。既然可以重载，那就说明还有带参的构造函数。构造函数在类实例化对象时会自动调用。]]></description><category></category></item><item><title><![CDATA[【C++】函数的参数缺省]]></title><link>https://blog.csdn.net/qq_45951891/article/details/143820110</link><guid>https://blog.csdn.net/qq_45951891/article/details/143820110</guid><author>qq_45951891</author><pubDate>Sat, 16 Nov 2024 17:14:39 +0800</pubDate><description><![CDATA[在声明函数时，为某个形参指定一个默认值，在调用函数时，如果不给这个带有默认值的形参传递参数，那么这个形参就会使用指定的默认值；如果给定了参数，就以给定的为准。]]></description><category></category></item><item><title><![CDATA[【C++】函数重载]]></title><link>https://blog.csdn.net/qq_45951891/article/details/143819755</link><guid>https://blog.csdn.net/qq_45951891/article/details/143819755</guid><author>qq_45951891</author><pubDate>Sat, 16 Nov 2024 16:56:10 +0800</pubDate><description><![CDATA[由于在C/C++中的浮点型常量默认是double类型，而double类型既可以给int型变量赋值，又可以给float型变量赋值。函数重载指的是，在同一个项目中定义的函数名字可以重复，也就是可以有同名的函数，但是要满足条件才能同名。注意：函数的返回值可以不同，但如果仅仅只有返回值不同是不可以的。加入新的重载函数，使得类型有确定的调用方式，不存在赋值兼容。赋值兼容(隐式类型转换)所导致的函数重载二义性问题。明确函数调用时的参数类型，可以使用强制类型转换。​	（2）相对应位置的类型不同。]]></description><category></category></item><item><title><![CDATA[【C++】static(静态)]]></title><link>https://blog.csdn.net/qq_45951891/article/details/143818559</link><guid>https://blog.csdn.net/qq_45951891/article/details/143818559</guid><author>qq_45951891</author><pubDate>Sat, 16 Nov 2024 15:56:18 +0800</pubDate><description><![CDATA[静态局部变量允许我们声明一个变量，它的生命周期基本上相当于整个程序的生命周期，但是它的作用域范围是被限制的。你可以在任何作用域中声明，如果在函数中声明，那么它的作用域范围被限制在这个函数中。静态变量或函数意味着，当需要将这些变量或函数与实际定义的符号链接时，链接器不会在这个翻译单元的作用域之外寻找那个符号定义，即只会在这个翻译单元内部链接（文件内可用）：指的是在C++类中声明成员时，可以加上static关键字，这样声明的成员叫静态成员。上面我们说它们属于类，是指它们是类中的一部分，实质上它们和在。]]></description><category></category></item><item><title><![CDATA[【C++】单例模式]]></title><link>https://blog.csdn.net/qq_45951891/article/details/143818455</link><guid>https://blog.csdn.net/qq_45951891/article/details/143818455</guid><author>qq_45951891</author><pubDate>Sat, 16 Nov 2024 15:50:53 +0800</pubDate><description><![CDATA[单例模式是一种常用的软件设计模式。通过单例模式可以保证系统中应用该模式的类只有一个实例化对象。]]></description><category></category></item><item><title><![CDATA[【C++】引用(reference)]]></title><link>https://blog.csdn.net/qq_45951891/article/details/143804954</link><guid>https://blog.csdn.net/qq_45951891/article/details/143804954</guid><author>qq_45951891</author><pubDate>Fri, 15 Nov 2024 18:00:09 +0800</pubDate><description><![CDATA[既然是对一个变量或者对象取别名，那就得先有变量或对象，不能凭空取一个别名。也就是定义引用必须初始化。假设我们想通过调用一个函数来实现一个整型变量的自增，有下面3种传递方式。我们为什么要使用引用呢？我们干嘛要起个别名而不直接用真名呢？其实引用就是指针的语法糖(syntax sugar)那么，可不可以给引用取别名呢？引用是对一个变量或者对象取的别名。：形参的改变无法改变实参的值。：形参的改变可以改变实参的值。：形参的改变可以改变实参的值。是不是比使用指针更简洁些呢。]]></description><category></category></item></channel></rss>