- 博客(22)
- 收藏
- 关注
原创 24 3.5stack容器
3.5stack容器3.5.1stack容器基本概念stack是一种先进后出(first in,last out,filo)的数据结构,他只有一个出口栈中只有顶部元素才可以被外界使用,因此栈不允许有遍历行为(因为只有栈顶元素才可以被外界访问到)栈可以判断是否为空 empty栈可以返回元素个数 size栈中入数据:入栈(push)栈中出数据:出栈(pop)3.5.2stack常用接口stack st;//stack采用模板类实现,stack对象的默认构造形式stack(const st
2022-05-16 18:39:12 263
原创 22 deque容器
deque容器双端数组:可以对头端进行插入删除操作deque和vector的区别:vector对于头部的插入删除效率低,数据量越大,效率越低deque相对而言,对头部的插入删除速度会比vector快vector访问元素的速度会比deque快很多,这和两者的内部实现有关[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cUSKBAtN-1652697488921)(C:\Users\86159\AppData\Local\Temp\WeChat Files\9f
2022-05-16 18:38:21 158
原创 21STL初识
STL初识2.1STL的诞生为实现见了一种可重复利用的东西c++面向对象和泛型编程思想,目的就是复用性的提高面向对象三大特性:封装继承多态2.2STL 基本概念STL(standard Template Library,标准模板库)STL从广义上分为:容器,算法,迭代器容器和算法之间通过迭代器进行无缝连接STL几乎所有的代码都采用了模板类或者模板函数2.3STL六大组件容器,算法,迭代器,仿函数,适配器(配接器),空间配置器容器:各种数据结构如vector,list,deque
2022-05-16 18:38:00 175
原创 20.c++提高编程
c++提高编程针对c++的泛型编程和STL技术做详细讲解,1.模板1.1模板的概念模板就是建立通用的模板,大大提高复用性模板不可以直接使用,只是一个框架模板不是万能的1.2函数模板c++另一种编程思想称为泛型编程,主要利用的技术模板c++提供两种模板机制:函数模板和类模板1.2.1 函数模板语法函数模板作用:建立一个通用函数,其返回值类型和形参类型可以不具体指定,用一个虚拟的类型来代表;template<typename T>;函数声明或定义。例如void
2022-05-16 18:36:05 209
原创 19文件操作
5文件操作程序运行时产生的数据都属于临时数据,程序一但运行结束都会被释放通过文件可以将数据持久化c++对文件操作需要包含头文件< fstream >文件类型分为两类文本文件:文件以文本的ascii码形式存储在计算机中二进制文件:文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们么。操作文件三大类:ofstream:写操作(output)Ifstream:读操作(input)fstream:读写操作5.1文本文件5.1.1写文件写文件步骤如下:包
2022-05-16 18:35:32 74
原创 c++多态
4.7多态4.7.1多态的基本概念多态是c++面向对象的三大特性之一多态分两类:静态多态:函数重载和运算符重载属于静态多态,复用函数名动态多态:派生类和虚函数实现运行时多态静态多态和动态多态的区别:静态多态的函数地址早绑定,编译阶段确定函数地址动态多态的函数地址晚绑定,运行阶段确定函数地址动态多态满足条件:有继承关系子类重写父类虚函数重写:函数返回值类型函数名称参数列表要完全相同才叫重写虚函数在父类中定义,虚函数在父类中不需要实现,都是通过子类来实现的。这样就是实现函数
2022-05-16 18:34:46 121
原创 c++继承
4.6继承继承是面对对象的三大特性之一动物包括猫和狗猫和狗都有动物的共性也都有自己的特点而猫中不同种类的猫都有猫的特点也多有自己的特点狗也是如此定义类时下级别的成员除了拥有上一级的共性,还有自己的特点使用继承的技术,减少重复代码4.6.1继承的基本语法#include<iostream>using namespace std;#include<string>class basepage {public: void head() { cout <&l
2022-05-16 18:34:10 73
原创 c++继承
4.6继承继承是面对对象的三大特性之一动物包括猫和狗猫和狗都有动物的共性也都有自己的特点而猫中不同种类的猫都有猫的特点也多有自己的特点狗也是如此定义类时下级别的成员除了拥有上一级的共性,还有自己的特点使用继承的技术,减少重复代码4.6.1继承的基本语法#include<iostream>using namespace std;#include<string>class basepage {public: void head() { cout <&l
2022-05-16 18:33:40 314
原创 16运算符重载
4.5运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型operator是C++的关键字,它和运算符一起使用,表示一个运算符函数,理解时应将 operator运算符 整体上视为一个函数名。4.5.1加号运算符重载实现两个自定义数据类型相加的运算有成员函数实现#include<iostream>using namespace std;#include<string>class goodgay{public: //1.通过成员函数
2022-05-16 18:33:06 89
原创 c++友元
4.4友元客厅时(public)一般人能进,卧室(private)y一般人不能进但是我是允许关系特别好的人进去;想让类外特殊的一些函数或者类进行访问就需要用到友元友元的目的就是让一个函数或者类访问另一个类中的私有成员。友元关键字friend友元三种实现: 全局函数做友元 #include<iostream>using namespace std;#include<string>//建筑物类class building { //.
2022-05-16 18:31:38 317
原创 c++学习类3
4.3c++对象模型和this指针4.3.1成员变量和成员函数分开储存c++中类内的成员变量和成员函数分开存储只有非静态成员变量才属于类的对象上class person{//内部无成员变量或成员函数,用这样的类创建出来的对象就是空对象。};person p1;cout<<"size of(p) = "<<sizeof(p)<<endl;//输出结果为1;//c++编译器会给每个空对象也分配一个字节内存空间,是为了区分空对象占内存的位
2022-04-30 21:07:28 193
原创 c++学习类2
4.2对象的初始化和清理 生活中多有电子产品基本都会有出厂设置,在某天我们不用的时候会删除一些自己的形象数据保证安全 c++中的面向对象来与那与生活,每个对象都会有初始化设置以及对象销毁前的清理数据的设置 4.2.1构造函数和析构函数对象的初始化和清理也是两个非常重要的安全问题一个对象或者变量没有初始状态,对其使用后果是未知的同样使用完一个对象或变量没有及时清理也会造成一定的安全问题c++利用构造函数和析构函数结局上述问题,这两个函数会被编译器自动调用,完成对象初始化和清
2022-04-30 21:05:51 146
原创 c++学习之类1
类和对象c++面向对象的三大特性:封装,继承,多态c++认为万事万物都是对象,对象上有其属性和行为(一定有)例如:人为对象,属性:姓名,年龄,身高,体重。行为:走,跑,跳。车为对象,属性:轮胎,方向盘,车灯。行为:载人,放音乐,放空调具有相同性质的对象,我可将其抽象为类,人属于人类,车属于车类4.1封装4.1.1封装的意义封装是c++面向对象的三大特性之一封装的意义: 将属性和行为作为一个整体,表现事物 将属性和行为加以权限控制 封装的意义一:
2022-04-30 21:02:52 89
原创 c++学习之函数提高(重载)
3函数提高3.1 函数默认参数c++中函数的形参列表是可以有默认值的语法返回值类型 函数名(参数 = 默认值){}int func(int a,int b,int c){ return a+b+c;}func(10,20,30);//少传一个参数都不行int func(int a ;int b =20;int c = 30){ return a+b+c;//得到60}func(10);//可以不用输入已经有默认值的数;func(20,90);...
2022-04-30 21:00:28 99
原创 c++学习之引用
2引用2.1引用的基本使用作用:给变量起别名(类似于是指针常量【不能修改指向但是可以修改指向内存上的数据】)引用只能是栈区或者堆区区别在于int* const p = &a; 指针开辟内存给p用来存放a的地址,而引用不需要指针是变成了两个内存而引用仍然是一个内存。语法 数据类型 &别名 = 原名;(其实就是给a这块内存起一个别名)通过别名和原名修改内存上的数据是一样的。2.2引用的注意事项引用必须初始化;int &b;//错误的int a
2022-04-30 20:58:11 117
原创 c++内存分区学习
1 内存分区模型c++程序在执行时,将内存划分为四个区域 代码区:存放函数的二进制代码(所有代码都放入)不能写代码但是会把我们写的代码变成二进制的形式存入其中 全局区:存放全局变量和静态变量以及常量 栈区:由编译器自动分配释放,存放函数的参数值,局部变量等 堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收 内存四则意义:不同区域的数据,赋予不同的生命周期,给我们更大的灵活编程;1.1代码区和全局区是在程序运行前分的区域在程
2022-04-30 20:55:54 132
原创 c++学习
8结构体8.1结构体基本概念结构体属于用户自定义的数据类型,允许用户存储不同的数据类型;8.2结构体定义和使用struct 结构体名 { 结构体成员列表 };创建有三种方式; struct 结构体名 变量名 //创建学生数据类型不代表任何一个学生struct Student{ string name; int age; int score;};//通过学生类型创建具体学生 创建结构体变量的三种方法//...
2022-04-24 01:24:11 238
原创 c++学习
7.指针7.1 指针的基本概念作用:可以通过指针间接访问内存指针是用来记录内存地址编号的(指针就是一个地址)1.定义指针语法:数据类型 * 指针变量名int a = 10;int * p;p = &a;或者int *p = &a;cout<<"a的地址:"<<&a<<endl;cout<<"指针p的值:"<<p<<endl;//连着输出的值是一样的;2.使用指针
2022-04-24 01:20:35 253
原创 c++学习
函数6.1概述 将一段经常使用的代码分装起来减少重复代码; 函数定义五个步骤:1.返回值类型;2.函数名;3.参数列表;4.函数体语句;5.return表达式;返回值类型 函数名(参数列表){ 函数体语句; return 表达式;}system("pause");//按任意键继续功能;6.3函数的调用调用方法:函数名(参数)函数声明有;函数定义后面直接就是{}调用的参数是实参(实际参数),而函数定义中的参数...
2022-04-24 01:16:18 63
原创 c++学习
4.2.3for循环for(起始条件;条件表达式;末尾循环体){}可以有for( ; ; )的形式;int i=1;for(;i>10;i++){ cout <<i<<endl;}i=0这个条件只进行一次;先执行代码后进行i++的操作;案例:敲桌子(个位有7,十位有7,七的倍数改为敲桌子)#include<iostream>using namespace std;int main(){ for(int i...
2022-04-24 01:14:04 87
原创 c++学习2
3运算符算术运算符赋值运算符比较运算符逻辑运算符3.1算术运算符 加减乘除 int a1 = 10;int b1 = 3;cout << a1+b1<<endl;cout << a1-b1<<endl;cout << a1*b1<<endl;cout << a1/b1<<endl;(两个整数相除结果仍然是整数)//除数(分母)为零会报错;两个小数可以相除;运算结果可
2022-04-01 22:48:42 322
原创 c++的学习
1. 初识c++1.1创建项目visual studio-> 创建新项目->空项目;1.2创建文件源文件->c++文件;1.3书写代码#include<iostream>using namespace std;int main(){ //11行代码含义就是在屏幕中输出hello world cout<<"hello world"<<endl; system("pause"); retur...
2022-04-01 22:47:58 490
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人