摘要: 1、简介: (1)双向链表实现; (2)不可进行随机访问;不支持下标运算和at函数; (3)插入和删除操作在任何位置都很快;因为不需要移动元素,只需要修改指针; (4)插入删除元素不会使引用、指针和迭代器失效; (5)对于异常的支持,操作要么成功,要么无效; (6)不提供容量和重新分配相关的操作,因 阅读全文
posted @ 2022-03-06 13:44 CallMe弱鸡 阅读(46) 评论(0) 推荐(0)
摘要: 一、简介: vector容器是一个单端容器,形式如下, 这是一个在std名字空间中定义的模板类: namespace std{ template <class T, class Allocator = allocator<T> > class vector;} 如果使用vector必须包含头文件<v 阅读全文
posted @ 2022-03-06 02:42 CallMe弱鸡 阅读(57) 评论(0) 推荐(0)
摘要: 函数模板是通用的函数描述,它们使用泛型来定义函数,其中的泛型可用具体的类型替换。通过将类型作为参数传递给模板,可使编译器生成该类型的函数。 1、语法: template<typename 类型> 返回值类型 函数名(类型 a, 类型 b){} 关键字template和typename是必不可少的,其 阅读全文
posted @ 2022-02-24 22:34 CallMe弱鸡 阅读(293) 评论(0) 推荐(0)
摘要: 运算符重载分为类的成员运算符重载和非成员运算符重载; 类内成员运算符重载: 语法: 双目运算符重载: 类名 operator运算符 (const 类名&);操作符的左操作数就是当前的对象,右操作数就是参数中的对象; 单目运算符重载: 自增自减运算符++、--; ①++或--在对象前面的情况: 类名& 阅读全文
posted @ 2022-02-22 23:02 CallMe弱鸡 阅读(139) 评论(0) 推荐(0)
摘要: 百度百科中对虚基类的介绍,链接如下: 虚基类_百度百科 (baidu.com) 虚基类的基本原则: 在内存中只能有基类成员的一份拷贝,解决菱形继承基类成员冗余问题,菱形继承形式如下: 若不使用虚基类,则在派生类中会有基类成员的5份拷贝,调用时必须用父类名进行区分; 使用虚基类的话,由于虚基类的成员在 阅读全文
posted @ 2022-02-21 23:18 CallMe弱鸡 阅读(1786) 评论(0) 推荐(0)
摘要: 当一个类继承于其他类,并且类中有类对象作为成员,这种情况下该类的初始化顺序为:先初始化继承的类,顺序按照继承的顺序从前到后,然后初始化类成员,顺序按照定义的顺序; 举例: 假设有3个基类,分别为Base1,Base2,Base3,三个类中均在构造函数和析构函数中打印出信息标识当前的执行顺序;类Der 阅读全文
posted @ 2022-02-21 20:53 CallMe弱鸡 阅读(607) 评论(0) 推荐(1)
摘要: C++类成员访问属性 类成员的访问属性有3种,公有属性,保护属性,私有属性。 其中公有属性的成员在类内和类外均可以直接访问; 保护属性的成员在类内可以访问,类外不可直接访问; 私有属性的成员在类内可以访问,类外不可直接访问; 举例: 类内: 1 class A 2 { 3 private: 4 in 阅读全文
posted @ 2022-02-20 21:30 CallMe弱鸡 阅读(264) 评论(0) 推荐(0)
摘要: 1.为什么要使用内联函数? 函数调用要花费掉一定的时间开销,比如调用前现场的保存,函数参数的压栈出栈操作等;所以当函数比较简单时,可以将函数定义为内联函数,这样在调用函数时就省去了前面说的那些开销,而是在调用处将函数代码展开。 要求: ①函数需简短; ②调用处不要太多,太多的话会导致代码的膨胀; 这 阅读全文
posted @ 2021-10-18 21:30 CallMe弱鸡 阅读(91) 评论(0) 推荐(0)
摘要: 1.为什么要使用sizeof运算符? 计算某种数据类型或者变量所占用的字节数,可以采用人工计算的方式,也可以采用sizeof运算符进行计算,更推荐使用sizeof运算符,理由如下: ①内置数据类型在不同的编译环境下所占的字节数并不一定保持不变,若按照固有思想去计算,则很可能出错;例如: 1 std: 阅读全文
posted @ 2021-10-18 21:10 CallMe弱鸡 阅读(288) 评论(0) 推荐(0)