上一页 1 ··· 5 6 7 8 9 10 11 12 下一页
摘要: 移动构造函数是C++11标准中引入的一个特殊的构造函数。它的主要目的是提高程序运行的效率,特别是在处理大型对象或者包含动态分配内存的对象时。 移动构造函数的参数是右值引用,通常用于接受临时对象。在移动构造函数中,新对象会直接接管临时对象的资源,而不是复制这些资源。这样,我们就可以避免一些不必要的深拷 阅读全文
posted @ 2023-12-10 15:34 ponder776 阅读(28) 评论(0) 推荐(0) 编辑
摘要: reinterpret_cast和static_cast都是C++中的类型转换运算符,但它们的用途和行为有所不同。 static_cast: static_cast用于执行比较“自然”和低风险的转换,如整型和浮点型、字符型之间的互相转换。 它也可以用于类层次结构中基类(父类)和派生类(子类)之间指针 阅读全文
posted @ 2023-12-10 15:18 ponder776 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 在C++中,const关键字可以用于创建常量,这意味着一旦定义,其值就不能改变。const可以修饰变量、指针、引用等,根据const修饰的对象不同,我们将其分为顶层const和底层const。 顶层const:当const修饰的是对象本身,即对象本身不可被修改,我们称之为顶层const。例如,对于c 阅读全文
posted @ 2023-12-10 14:54 ponder776 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 成员初始化列表是C++中的一个特性,它允许在构造函数中对类的成员变量进行初始化。成员初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。例如: class MyClass { public: MyClass(int a, int b) : m_a(a), m_b(b) { } private: 阅读全文
posted @ 2023-12-10 14:42 ponder776 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 一般指堆的内存泄漏,简单来说就是已申请的内存空间没有被正确释放。 避免内存泄露的几种方式 计数法:使用new或者malloc时,让该数+1,delete或free时,该数-1,程序执行完打印这个计数,如果不为0则表示存在内存泄露 一定要将基类的析构函数声明为虚函数 对象数组的释放一定要用delete 阅读全文
posted @ 2023-12-09 21:22 ponder776 阅读(7) 评论(0) 推荐(0) 编辑
摘要: C++ string 类的扩容机制主要取决于编译器的实现,但一般来说,它们都遵循一种动态数组的策略,即当字符串的大小超过当前容量时,就会分配更大的内存空间。以下是一种常见的扩容策略1: size_type _Grow_to(size_type _Count) const { size_type _C 阅读全文
posted @ 2023-12-09 20:42 ponder776 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 算法 平均时间复杂度 最差空间复杂度 快速排序 nlogn logn 归并排序 nlogn n timsort nlogn n 堆排序 nlogn 1 冒泡排序 n^2 1 插入排序 n^2 1 选择排序 n^2 1 希尔排序 (nlogn)^2 1 桶排序 n+k n 基数排序 nk n+k 阅读全文
posted @ 2023-12-09 19:42 ponder776 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 单例模式是一种常用的软件设计模式,其目标是确保一个类只有一个实例,并提供一个全局访问点。在C++中,可以通过以下步骤实现单例模式: 私有化构造函数,以防止外界创建单例类的对象。 使用类的私有静态指针变量指向类的唯一实例。 使用一个公有的静态方法获取该实例。 以下是一个简单的C++单例模式的实现示例: 阅读全文
posted @ 2023-12-08 21:56 ponder776 阅读(1) 评论(0) 推荐(0) 编辑
摘要: c++ 多态? 多态是c++三大特性之一,封装 继承 多态,简单来说就是同一个调用实现不同的操作。而虚函数是实现多态的机制,核心就是通过虚函数实现基类可以调用派生类的方法。一般情况下,一个函数的调用是在编译时静态确定的,而多态使得函数的调用可以在运行时动态确定。当使用类的指针调用成员函数时,普通函数 阅读全文
posted @ 2023-12-08 21:52 ponder776 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 在C++中,new关键字主要用于动态内存分配。以下是一些可能需要使用new的情况: 复杂类型:对于复杂类型,如自定义的类类型,通常需要使用new进行动态内存分配。 大量内存空间:当你需要大量的内存空间时,比如你需要一个包含10000个int的数组,这时候你就需要使用new。 内存大小未知:有时实体的 阅读全文
posted @ 2023-12-08 21:18 ponder776 阅读(167) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 下一页