C++
文章平均质量分 62
黑马课程C++自学笔记
Ms.lan
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++——常用算法
1、功能描述:查找指定元素,找到返回指定元素的迭代器,找不到返回结束迭代器end()②random_shuffle //洗牌,指定范围内的元素随机调整次序。//查找指定元素,找到返回指定元素的迭代器,找不到返回结束迭代器位置。//按值查找元素,找到返回指定位置的迭代器,找不到返回结束迭代器位置。//按值查找元素,找到返回指定位置的迭代器,找不到返回结束迭代器位置。//按值查找元素,找到返回指定位置迭代器,找不到返回结束迭代器位置。//查找相邻重复元素,返回相邻元素的第一个位置的迭代器。原创 2025-09-29 12:44:22 · 933 阅读 · 0 评论 -
C++——map/multimap容器
/查找key是否存在,若存在,返回该键的元素迭代器,若不存在,返回set.end( )①公司今天招聘了10个员工(ABCDEFGHI),10名员工进入公司之后,需要指派员工在那个部门工作。//删除区间[beg,end]的所有元素,返回下一个元素的迭代器。③分组后,将员工部门编号作为key,具体员工作为value,放入到multimap容器中。//删除pos迭代器所指的元素,返回下一个元素的迭代器。④通过multimap进行信息的插入 key(部门编号)value(员工)//删除容器中值为key的元素。原创 2025-09-29 12:41:57 · 437 阅读 · 0 评论 -
C++——set/multiset容器
/查找key是否存在,若存在,返回该键元素的迭代器,若不存在,返回set.end( )//删除区间[beg,end]的所有元素,返回下一个元素的迭代器。//删除pos迭代器所指的元素,返回下一个元素的迭代器。2、本质:set/multiset属于关联式容器,底层结构是用二叉树实现。1、功能描述:统计set容器大小以及交换set容器。①set不可以插入重复数据,而multiset可以。原创 2025-09-29 12:41:05 · 264 阅读 · 0 评论 -
C++——list容器
1、功能描述:创建list容器2、函数原型://list采用模版类实现,对象的默认构造形式//构造函数将[beg,end]区间中的元素拷贝给本身//构造函数将n个elem拷贝给本身//拷贝构造函数。原创 2025-09-29 12:40:15 · 575 阅读 · 0 评论 -
C++——stack容器和queque容器
/queque采用模版类实现,queque对象的默认构造形式。//stack采用模版类实现,stack对象的默认构造形式。//从栈顶移除第一个元素。①empty( );//判断堆栈是否为空。//从队头移除第一个元素。①empty( );//返回最后一个元素。原创 2025-09-29 12:39:06 · 244 阅读 · 0 评论 -
C++——Deque容器
/重新指定容器长度为num,若容器变长,则以elem填充新位置。//在pos位置插入[beg,end]区间的数据,无返回值。sort(iterator beg,iterator end) //对beg和end区间内元素进行排序。//构造函数将[beg,end]区间中的元素拷贝给本身。//在pos位置插入n个elem数据,无返回值。//将[beg,end]区间中的数据拷贝赋值给本身。//删除[beg,end]区间的数据,无返回值。//删除pos位置的数据,返回下一个数据的位置。//在容器头部插入一个数据。原创 2025-09-29 12:37:45 · 798 阅读 · 0 评论 -
C++——Vector容器
1、功能描述:对vector容器的容量和大小操作2、函数原型:①empty( );//判断容器是否为空//容器的容量③size( );//返回容器中元素的个数//重新指定容器的长度为num,若容器变长,则以默认值填充新位置//如果容器变短,则末尾超出容器长度的元素被删除//重新指定容器的长度为num,若容器变长,则以elem值填充新位置//如果容器变短,则末尾超出容器长度的元素被删除。原创 2025-09-29 12:36:13 · 313 阅读 · 0 评论 -
C++——String容器
1、功能描述:给string字符串进行赋值2、赋值的函数原型://char*类型字符串赋值给当前的字符串//把字符串s赋给当前的字符串//字符赋值给当前的字符串//把字符串s赋给当前的字符串//把字符串s的前n个字符赋给当前的字符串//把字符s赋给当前字符串//用n个字符c赋给当前字符。原创 2025-09-29 12:34:36 · 713 阅读 · 0 评论 -
C++——STL
vector中存放自定义数据类型,并打印输出//vector容器中存放自定义数据类型public:int m_Age;//向容器中添加数据//遍历容器中的数据it!=v.end();it++){cout<<"姓名:"<<(*it).m_Name<<"年龄:"<<(*it).m_Age<<endl;cout<<"姓名:"<<it->m_Name<<"年龄:"<<it->m_Age<<endl;//存放自定义数据类型指针//向容器中添加数据。原创 2025-09-29 12:33:25 · 372 阅读 · 0 评论 -
C++类模版
1、学习目标:类模版实例化出的对象,向函数传参的方式2、三种传入方式:①指定传入的类型——直接显示对象的数据类型②参数模版化——将对象中的参数变为模版进行传递③整个类模版化——将这个对象类型模版化进行传递。原创 2025-09-28 10:26:15 · 279 阅读 · 0 评论 -
C++模版
在上诉代码中,如果T的数据类型传入的是像Person这样的自定义数据类型,也无法正常运行。建立一个通用模版,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表。因此C++为了解决这些问题,提供模版的重载,可以为这些特定的类型提供具体化的模版。在上诉代码中提供的赋值操作,如果传入的a和b是一个数组,就无法实现了。①利用函数模版封装一个排序的函数,可以对不同数据类型数组进行排序。②函数模版调用时,如果利用自动类型推导,不会发生隐式类型转换。①自动类型推导,必须推导出一致的数据类型T,才可以使用。原创 2025-09-28 10:24:46 · 421 阅读 · 0 评论 -
C++面向对象编程——文件操作
1、程序运行时产生的数据属于临时数据,程序一旦运行结束都会被释放通过文件可以将数据持久化2、C++中对文件操作需要包含头文件<fstream>3、文件类型分为两种:①文本文件:文件以文本的ASCII码形式存储在计算机中②二进制文件:文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们4、操作文件的三大类①ofstream:写操作②ifstream:读操作③fstream:读写操作。原创 2025-09-28 10:22:51 · 377 阅读 · 0 评论 -
C++面向对象编程——多态
1、多态使用时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用到子类的析构函数。1、在多态中,通常父类中虚函数的实现是毫无意义的,主要都是调用子类重写内容。5、纯虚析构语法:virtual ~类名()=0 类名::~类名(){}①静态多态:函数重载和运算符重载属于静态多态,复用函数名。②如果子类中没有堆区数据,可以不写为虚析构或纯虚析构。②子类必须重写抽象类中的纯虚函数,否则也属于抽象类。解决方法:将父类中的析构函数改为虚析构或者纯虚析构。①如果是纯虚析构,该类属于抽象类,无法实例化对象。原创 2025-09-28 10:21:58 · 428 阅读 · 0 评论 -
C++面向对象编程——继承
继承是面向对象三大特性之一有些类与类之间存在特殊的关系,例如下图中:我们发现,定义这些类时,下级别的成员除了拥有上一级的共性,还有自己的特性这个时候我们就可以考虑利用继承的技术,减少重复代码。原创 2025-09-28 10:21:05 · 235 阅读 · 0 评论 -
C++面向对象编程——运算符重载
运算符重载概念:对已有的运算行程序进行定义,赋予其另一种功能,以适应不同的数据类型。原创 2025-09-28 10:20:12 · 252 阅读 · 0 评论 -
C++面向对象编程——友元
②类做友元③成员函数做友元。原创 2025-09-28 10:18:32 · 204 阅读 · 0 评论 -
C++面向对象编程——对象特性(构造函数和析构函数)
对象的初始化和清理工作是编译器强制要我们做的事情,因此如果我们不提供构造和析构,编译器会提供编译器提供的构造函数和析构函数是空实现,this指针指向被调用的成员函数所属的对象。c++利用了构造函数和析构函教解决上述问题,这两个的数将会被编译器自动调用,完成对象初始化和清理工作。1、构造函数:主要作用在于创建对象时为对象的成员属性赋值,构造函数有编译器自动调用,无需手动调用。④程序在调用对象时候会自动调用构造,无需手动调用,而且只会调用一次。C++类中的成员可以是另一个类的对象,我们称该成员为对象成员。原创 2025-09-28 10:15:49 · 594 阅读 · 0 评论 -
C++面向对象编程——封装
C++面向对象的三大特性为:封装、继承、多态C++认为万事万物都皆为对象,对象上有其属性和行为例如:人可以作为对象,属性有姓名、年龄、身高、体重.,行为有走、跑、跳、吃饭、唱歌...车也可以作为对象,属性有轮胎、方向盘、车灯…行为有载人、放音乐、放空调...具有相同性质的对象,我们可以抽象称为类,人属于人类,车属于车类。原创 2025-09-27 13:42:21 · 320 阅读 · 0 评论 -
C++面向对象编程——函数
C++中函数的形参列表中可以有占位参数,用来做占位,调用函数时必须填补该位置。③函数参数类型不同 或者 个数不同 或者 顺序不同。3、注意:函数返回值不可以作为函数重载的条件。语法:返回值类型 函数名(数据类型){ }1、作用:函数名可以相同,提高复用性。(占位参数还可以有默认参数)函数重载碰到函数默认参数。原创 2025-09-27 13:32:22 · 146 阅读 · 0 评论 -
C++面向对象编程——引用
语法:数据类型 &别名 = 原名。原创 2025-09-27 13:31:17 · 486 阅读 · 0 评论 -
C++面向对象编程——内存分区模型
C++程序在执行时,将内存大方向划分为4个区域1、代码区:存放函数体的二进制代码,由操作系统进行管理的2、全局区:存放全局变量和静态变量以及常量3、栈区:编译器自动分配释放,存放的数的参数值,局部变量等4、堆区:由程序员分配和释放,若程多员不释放,程序结束时由操作系统回收。原创 2025-09-27 13:30:18 · 144 阅读 · 0 评论 -
C++结构体
语法:struct 结构体名 { 结构体成员列表 };通过结构体创建变量三种方式1、struct 结构体名 变量名(struct可省略)2、struct 结构体名 变量名 = { 成员1值,成员2值... }(struct可省略)3、定义结构体时顺便创建变量int age;int score;}s3;//3、定义结构体时顺便创建变量//1、struct 结构体名 变量名(struct可省略)原创 2025-09-27 13:28:59 · 263 阅读 · 0 评论 -
C++指针
语法:数据类型 *变量名int a = 10;//指针定义int *p;//指针记录变量a的地址p = &a;cout << "a的地址为:"<< &a << endl;count << "指针p为:" << p << endl;//通过解引用的方式来找到指针指向的内存//指针前加*代表解引用,找到指针指向的内存中的数据*p = 1000;原创 2025-09-26 11:18:24 · 791 阅读 · 0 评论 -
C++函数
1、返回值类型: 一个的数可以返回一个值,在函数定义中2、函数名: 给函数起个名称3、参数列表: 使用该函数时,传入的数据4、函数体语句: 花括号内的代码,因数内需要执行的语句5、return表达式: 和返回值类型接钩,的数执行充后,返回相应的效据返回值类型 函数名 (参数列表)函数体语句return 表达式。原创 2025-09-26 11:17:44 · 281 阅读 · 0 评论 -
C++数组
1、数据类型 数组名[ 数组长度 ];2、数据类型 数组名[ 数组长度 ] = { 值1,值2... };3、数据类型 数组名[ ] = {值1,值2 ...};1、数据类型 = 数组名[ 行数 ][ 列数 ];2、数据类型 = 数组名[ 行数 ][ 列数 ] = { { 数据1,数据2 },{ 数据3,数据4 } };3、数据类型 = 数组名[ 行数 ][ 列数 ] = { 数据1,数据2 ,数据3,数据4 };原创 2025-09-26 11:15:49 · 631 阅读 · 0 评论 -
C++程序流程结构
顺序结构:程序按顺序执行,不发生跳转选择结构:依据条件是否满足,有选择的执行相应功能循环结构:依据条件是否满足,循环多次执行某段代码。原创 2025-09-26 11:14:41 · 500 阅读 · 0 评论 -
C++基础
字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元。注意1:在显示字符型变量时,用单引号将字符括起来,不要用双引号。如果表达式1的值为真,执行表达式2,并返回表达式2的结果;如果表达式1的值为假,执行表达式3,并返回表达式3的结果。表示一些不能显示出来的ASCI字符(\n \\ \t)注意2:单引号内只能有一个字符,不可以是字符串。1、char 变量名[ ] = "字符串值"表示真或假的值(占1个字节大小)2、false----假(0)1、true----真(1)原创 2025-09-26 11:13:12 · 172 阅读 · 0 评论
分享