加载中...

随笔分类 -  黑马C++核心编程

摘要:算法概念 算法主要是由头文件组成。 是所有STL头文件中最大的一个,其中常用的功能涉及到比较,交换,查找,遍历,复制,修改,反转,排序,合并等... 体积很小,只包括在几个序列容器上进行的简单运算的模板函数. 定义了一些模板类,用以声明函数对象。 1.算法通过迭代器来操作容器中元素 2.算法的头文件 阅读全文
posted @ 2024-02-23 02:06 江寒雨 阅读(37) 评论(0) 推荐(0)
摘要:函数对象 1.什么是函数对象 ​ 1.类中重载了(),这个类实例化的对象叫函数对象(仿函数); ​ 2.一元仿函数是operator()中只需要一个参数。二元仿函数是operator()中需要二个参数 2.有什么用 ​ 1.做为算法的策略 void test() { vector<int> v; v 阅读全文
posted @ 2024-02-21 21:21 江寒雨 阅读(29) 评论(0) 推荐(0)
摘要:STL的深浅拷贝问题 ​ STL容器所提供的都是值(value)寓意,而非引用(reference)寓意,也就是说当我们给容器中插入元素的时候,容器内部实施了拷贝动作,将我们要插入的元素再另行拷贝一份放入到容器中,而不是将原数据元素直接放进容器中,也就是说我们提供的元素必须能够被拷贝。 #defin 阅读全文
posted @ 2024-02-21 17:25 江寒雨 阅读(43) 评论(0) 推荐(0)
摘要:map/multimap容器 1.map/multimap也是关联式容器,容器自身有规则,通过键值排序,map容器中的元素是对组,对组的第一个元素是键值,不能改变,第二个元素是实值,可以改变 2.数据结构:平衡二叉树 3.迭代器:双向迭代器 4.map容器和multimap容器的区别是multima 阅读全文
posted @ 2024-02-21 17:14 江寒雨 阅读(21) 评论(0) 推荐(0)
摘要:set/multiset容器 Set的特性是。所有元素都会根据元素的键值自动被排序。Set的元素不像map那样可以同时拥有实值和键值,set的元素即是键值又是实值。Set不允许两个元素有相同的键值。 我们可以通过set的迭代器改变set元素的值吗?不行,因为set元素值就是其键值,关系到set元素的 阅读全文
posted @ 2024-02-21 17:02 江寒雨 阅读(36) 评论(0) 推荐(0)
摘要:pair对组 ​ 对组(pair)将一对值组合成一个值,这一对值可以具有不同的数据类型,两个值可以分别用pair的两个公有属性first和second访问。 1.pair对组是一个类,类中有两个公有的成员变量 2.对组通常用来接收key-vluae这样的元素 //第一种方法创建一个对组 pair<s 阅读全文
posted @ 2024-02-21 01:00 江寒雨 阅读(81) 评论(0) 推荐(0)
摘要:list容器 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<list> usingnamespace std; int main(){ list<int> myList; for(int i =0; i <10; i ++){ 阅读全文
posted @ 2024-02-21 00:57 江寒雨 阅读(44) 评论(0) 推荐(0)
摘要:queue容器 1.数据结构:连续的存储空间,有两个口,一个是进入数据,一个是出数据,有先进先出的特性 Queue所有元素的进出都必须符合”先进先出”的条件,只有queue的顶端元素,才有机会被外界取用。Queue不提供遍历功能,也不提供迭代器。 2.迭代器:没有迭代器 3.常用的api: ​ 1. 阅读全文
posted @ 2024-02-20 19:38 江寒雨 阅读(52) 评论(0) 推荐(0)
摘要:01.stack容器 1.数据结构:连续的存储空间,只有一个出口,先进后出特性 Stack不提供遍历功能,也不提供迭代器。 2.迭代器:没有迭代器 3.常用的api: ​ 1.构造函数 stack<T> stkT;//stack采用模板类实现, stack对象的默认构造形式: stack(const 阅读全文
posted @ 2024-02-20 19:38 江寒雨 阅读(97) 评论(0) 推荐(0)
摘要:deque容器 1.数据结构:逻辑上是连续的存储空间,实际上的由很多块定量的块空间,通过中控制连接起来 2.迭代器:随机迭代器 Deque是由一段一段的定量的连续空间构成。一旦有必要在deque前端或者尾端增加新的空间,便配置一段连续定量的空间,串接在deque的头端或者尾端。Deque最大的工作就 阅读全文
posted @ 2024-02-20 18:48 江寒雨 阅读(46) 评论(0) 推荐(0)
摘要:vector容器(重点,常用容器) 1.数据结构:连续存储空间 2.迭代器:随机迭代器 3.vector容器动态增长原理 ​ 1.当存储空不够时,会开辟另一块大的空间,然后把数据拷贝过去,最后在销毁原来的空间 ​ 2.申请的空间,会比用户需求大一点 ​ 3.重新分配空间,那么原来的迭代器就会失效 ​ 阅读全文
posted @ 2024-02-20 17:45 江寒雨 阅读(46) 评论(0) 推荐(0)
摘要:string容器(重点) 1.数据结构:连续的存储空间,用一个char*指向这片空间 2.迭代器:随机访问迭代器 3.常用的api: ​ 1.构造 string();//创建一个空的字符串 例如: string str; string(const string& str);//使用一个string对 阅读全文
posted @ 2024-02-20 17:13 江寒雨 阅读(34) 评论(0) 推荐(0)
摘要:01.STL的介绍(重点) 1.STL(Standard TemplateLibrary,标准模板库) 2.STL提供了六大组件:容器,算法,迭代器,仿函数,适配器,空间配置器 ​ 容器:各种数据结构 ​ 算法:各种常用的算法(冒泡,排序) ​ 迭代器:扮演了容器与算法之间的胶合剂(类似于指针等) 阅读全文
posted @ 2024-02-19 17:22 江寒雨 阅读(52) 评论(0) 推荐(0)
摘要:1.文件读写操作(重点) 1.回顾C语言的文件读写 1.按照字符读写文件fgetc、fputc int fputc(int ch, FILE * stream);//写 int fgetc(FILE * stream);//读 2.按照行读写文件fgets、fputs //可bit读写 int fp 阅读全文
posted @ 2024-02-19 16:42 江寒雨 阅读(22) 评论(0) 推荐(0)
摘要:1.系统标准的输入流(重点) 1.流的概念和流类库的结构(了解) 标准IO:对系统的标准输入输出设备进行读写 文件IO:对磁盘进行输入输出读写 串IO:对内存进行读写 申请数组 2.成员函数 cin.get() //一次只能从缓冲区读取一个字符 可以接受空格 换行 //首先cin的输入有一个特点,在 阅读全文
posted @ 2024-02-19 15:04 江寒雨 阅读(14) 评论(0) 推荐(0)
摘要:01.异常基本概念(了解) 异常处理就是处理程序中的错误。所谓错误是指在程序运行的过程中发生的一些异常事件 02.异常的作用(了解) //C语言处理异常的方法的缺陷: //1.返回值意思不明确 //2.返回值只能返回一条信息 //3.返回值可以忽略 返回值可以不当左值 C++的异常可以解决上面的问题 阅读全文
posted @ 2024-02-19 00:04 江寒雨 阅读(19) 评论(0) 推荐(0)
摘要:C++类型转换 静态转换: ​ 用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换 //指针 void test02() { Father* f = NULL; Son* s = NULL; //向下转换 不安全 Son* s1 = static_cast<Son*> (f); //向 阅读全文
posted @ 2024-02-15 16:03 江寒雨 阅读(28) 评论(0) 推荐(0)
摘要:01.模版的概念(了解) 1.函数或类是通用,但是里面的数据类型的多种状态 2.模版有:函数和类 02.函数模版(重点) 1.什么是函数模版 函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体制定,用一个虚拟的类型来代表。这个通用函数就成为函数模板 2.怎么编写函数模版 //T代表泛型的 阅读全文
posted @ 2024-02-14 17:47 江寒雨 阅读(71) 评论(0) 推荐(0)
摘要:01.多态(重点难点) 1.什么是多态: 同一个操作作用于不同的对象,可以有不同的解释,会产生不同的效果,这就是多态 class People { public: //虚函数 virtual void Mypro() { } }; class xishi :public People { publi 阅读全文
posted @ 2024-02-12 01:37 江寒雨 阅读(28) 评论(0) 推荐(0)
摘要:01.智能指针类(重点) 1.智能指针类是管理另一个类的对象的释放 class Maker { public: Maker() { cout << "无参构造" << endl; } void printMaker() { cout << "hello Maker" << endl; } ~Make 阅读全文
posted @ 2024-02-07 18:44 江寒雨 阅读(46) 评论(0) 推荐(0)