
C++
文章平均质量分 71
Siveens
不积跬步无以至千里,不积小流无以成江海!
展开
-
Effective C++学习笔记
当std::swap效率不高是,需要提供一个swap成员函数,但要确定其不会抛出异常如果提供一个swap成员函数,那么应该提供一个非成员函数swap去调用成员函数swap。对于类而言要特例化std::swap使用std::swap时,要先取消命名空间再使用,而不要直接使用std::swap不要尝试在std中加入全新的东西可以增加程序的清晰度并改善程序的运行效率编写模板类时,如果需要与模板类相关函数支持所有参数的隐式转换的话,需要将函数定义在模板类中,并声明为友元函数。原创 2023-04-16 17:34:13 · 1490 阅读 · 0 评论 -
C++构造函数生成和调用时机
1、定义实例时2、定义实例时用另一个实例进行初始化(拷贝构造)3、作为参数按值传递(拷贝构造)4、作为局部变量,按值返回时(拷贝构造)5、两个已经存在的实例,把一个赋值给另一个(赋值构造函数)class CConstructor{public: CConstructor() { std::cout<<"A parameterless constructor was called!"<<std::endl; } CCons原创 2021-02-25 17:19:22 · 1560 阅读 · 0 评论 -
十大排序算法(C++)
十大排序算法(C++)1、冒泡排序原理:比较相邻两个元素,如果前一个比后一个大则交换二者位置(以升序为例),每进行一轮比较则可以把最大的元素放到相对最后的位置。每进行一轮比较就会有一个元素变为有序。循环对每轮越来越少的元素进行比较则最终变为有序序列。如果序列元素初始时为有序,则一轮则可进行排序完毕,最好时间复杂度为O(n);如果序列元素初始时是逆序,则需要n-1轮比较,且每轮要进行n-i次比较,最坏时间复杂度为O(n²),平均时间复杂度为O(n²)。// 冒泡排序void SortBubblin原创 2021-02-21 19:46:45 · 643 阅读 · 0 评论 -
重载全局new和delete检查内存泄漏
最近在VS2015中做MFC项目,出现内存泄漏问题,但是在使用DEBUG_NEW宏的使用无法跟踪代码内存泄漏具体文件及行号,所以就自己进行了重载全局new和delete进行内存泄漏的检查,虽然自己在项目中能够正常的使用,但是强烈不建议在项目中重载全局的new和delete(可能会出现意想不到的问题)。 重载全局new和delete进行内存泄漏检查的原理,就是为了在使用...原创 2020-04-18 20:35:05 · 744 阅读 · 1 评论