- 博客(22)
- 收藏
- 关注
原创 STL学习(10)
map中所有元素都是pairpair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)所有元素都会根据元素的键值自动排序map/multimap属于,底层结构是用二叉树实现。可以根据key值快速找到value值。
2023-11-01 19:46:45 33
原创 STL学习(10)
掌握set和multiset的区别set不可以插入重复数据,而multiset可以set插入数据的同时会返回插入结果,表示插入是否成功multiset不会检测数据,因此可以插入重复数据。
2023-11-01 19:40:07 28
原创 STL学习(7)
stack是一种(First In Last Out,FILO)的数据结构,它只有一个出口栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为栈中进入数据称为 ---push栈中弹出数据称为 ---pop。
2023-10-30 23:13:12 32 1
原创 STL学习(5)
双端数组,可以对头端进行插入删除操作vector对于头部的插入删除效率低,数据量越大,效率越低deque相对而言,对头部的插入删除速度回比vector快vector访问元素时的速度会比deque快,这和两者内部实现有关1.deque内部有个,维护每段缓冲区中的内容,缓冲区中存放真实数据中控器维护的是每个缓冲区的地址,使得使用deque时像一片连续的内存空间2.deque容器的迭代器也是支持随机访问的。
2023-10-29 21:51:56 24 1
原创 STL学习(4)
对vector容器进行插入、删除操作//尾部插入元素ele//删除最后一个元素//迭代器指向位置pos插入元素ele//迭代器指向位置pos插入count个元素ele//删除迭代器指向的元素//删除迭代器从start到end之间的元素clear();//删除容器中所有元素。
2023-10-28 22:09:14 34
原创 STL学习(3)
vector数据结构和,也称为不同之处在于数组是静态空间,而vector可以并不是在原空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝新空间,释放原空间vector容器的迭代器是支持随机访问的迭代器。
2023-10-28 22:02:52 25
原创 STL学习(2)
学习目标:vector中存放自定义数据类型,并打印输出//自定义数据类型public:mAge = age;//存放对象//创建数据it!= v.end();it++) {//放对象指针//创建数据it!= v.end();test02();return 0;
2023-10-26 23:59:17 25 1
原创 STL学习(1)
容器:各种数据结构,如vector、list、deque、set、map等,用来存放数据。提供一种方法,使之能够依序寻访某个容器所含的各个元素,而又无需暴露该容器的内部表示方式。非质变算法:是指运算过程中不会更改区间内的元素内容,例如查找、计数、遍历、寻找极值等等。有限的步骤,解决逻辑或数学上的问题,这一门学科我们叫做算法(Algorithms)算法:各种常用的算法,如sort、find、copy、for_each等。:强调值的排序,序列式容器中的每个元素均有固定的位置。空间配置器:负责空间的配置与管理。
2023-10-26 23:44:12 25 1
原创 C++模板学习(3)
类模板和函数模板语法相似,在声明模板template后面加类,此类称为类模板类模板使用只能用显示指定类型方式类模板中的模板参数列表可以有默认参数类模板中的成员函数并不是一开始就创建的,在调用时才去创建通过类模板创建的对象,可以有三种方式向函数中进行传参使用比较广泛是第一种:指定传入的类型。
2023-10-22 23:03:10 30 1
原创 C++模板学习(2)
建议使用显示指定类型的方式,调用函数模板,因为可以自己确定通用类型T提供了函数模板,最好就不要提供普通函数,否则容易出现二义性利用具体化的模板,可以解决自定义类型的通用化。
2023-10-18 22:44:18 24 1
原创 C++模板学习(1)
函数模板利用关键字 template使用函数模板有两种方式:自动类型推导、显示指定类型模板的目的是为了提高复用性,将类型参数化。
2023-10-17 23:00:51 36
原创 C++文件操作——文本文件(1)
文件操作必须包含头文件 fstream读文件可以利用 ofstream ,或者fstream类打开文件时候需要指定操作文件的路径,以及打开方式利用<<可以向文件中写数据操作完毕,要关闭文件。
2023-10-15 01:30:00 42 1
原创 类与对象学习-多态(3)
1. 虚析构或纯虚析构就是用来解决通过父类指针释放子类对象2. 如果子类中没有堆区数据,可以不写为虚析构或纯虚析构3. 拥有纯虚析构函数的类也属于抽象类。
2023-10-12 23:30:00 57
原创 类与对象学习-多态(2)
在多态中,通常父类中虚函数的实现是毫无意义的,主要都是调用子类重写的内容,因此可以将虚函数改为。2.子类必须重写抽象类中的纯虚函数,否则也属于抽象类;1.无法实例化对象;
2023-10-11 23:30:00 20
原创 类与对象学习-多态(1)
多态是C++面向对象三大特性之一多态分为两类:1.静态多态: 函数重载 和 运算符重载属于静态多态,复用函数名2.动态多态: 派生类和虚函数实现运行时多态静态多态和动态多态区别:1.静态多态的函数地址早绑定 - 编译阶段确定函数地址2.动态多态的函数地址晚绑定 - 运行阶段确定函数地址示例:
2023-10-10 23:30:00 35
原创 类与对象学习-继承(2)
两个派生类继承同一个基类又有某个类同时继承者两个派生类这种继承被称为菱形继承,或者钻石继承public:int m_Age;//继承前加virtual关键字后,变为虚继承//此时公共的父类Animal称为虚基类test01();return 0;
2023-10-09 23:30:00 18
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人