03 2024 档案
摘要:map/ multimap容器 1.1 map基本概念 简介: map中所有元素都是pair pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值) 所有元素都会根据元素的键值自动排序 本质: map/multimap属于关联式容器,底层结构是用二叉树实现。 优点: 可以
阅读全文
摘要:set/ multiset 容器 1.1 set基本概念 简介: 所有元素都会在插入时自动被排序 本质: set/multiset属于关联式容器,底层结构是用二叉树实现。 set和multiset区别: set不允许容器中有重复的元素 multiset允许容器中有重复的元素 1.2 set构造和赋值
阅读全文
摘要:list容器 1.1 list基本概念 功能:将数据进行链式存储 链表(list) 是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的 链表的组成:链表由一系列结点组成 结点的组成:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域 STL中的链表是一个
阅读全文
摘要:queue 容器 1.1 queue 基本概念 概念: Queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口 队列容器允许从一端新增元素,从另一端移除元素 队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为 队列中进数据称为 入队 push
阅读全文
摘要:stack容器 1.1 stack 基本概念 概念:stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口 栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为 栈中进入数据称为 入栈 push 栈中弹出数据称为 出栈 pop 1.2 stack 常
阅读全文
摘要:deque容器 1.1 deque容器基本概念 功能: 双端数组,可以对头端进行插入删除操作 deque与vector区别: vector对于头部的插入删除效率低,数据量越大,效率越低 deque相对而言,对头部的插入删除速度会比vector快 vector访问元素时的速度会比deque快,这和两者
阅读全文
摘要:vector容器 最常用的容器之一 1.1 vector基本概念 功能: vector数据结构和数组非常相似,也称为单端数组 vector与普通数组区别: 不同之处在于数组是静态空间,而vector可以动态扩展 动态扩展: 并不是在原空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝新空间,
阅读全文
摘要:String容器 1.1 string基本概念 本质: string是C++风格的字符串,而string本质上是一个类 string和char * 区别: char * 是一个指针 string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。 特点: string 类内部
阅读全文
摘要:了解STL中容器、算法、迭代器概念之后,我们利用代码感受STL的魅力 STL中最常用的容器为Vector,可以理解为数组,下面我们将学习如何向这个容器中插入数据、并遍历这个容器 1、vector存放内置数据类型 容器:vector 算法:for_each 迭代器:vector<int>::itera
阅读全文
摘要:1、STL的诞生 长久以来,软件界一直希望建立一种可重复利用的东西。 C++ 面向对象 和 泛型编程 思想,目的就是 复用性的提升。 大多数情况下,数据结构和算法都未能有一套标准,导致被迫从事大量的重复工作。 为了建立数据结构和算法的一套标准,诞生了STL。 2、STL的基本概念 STL(stand
阅读全文
摘要:1、类模板的语法 类模板的作用: 建立一个通用类,类中的成员数据类型可以不具体指定,用一个虚拟的类型来代表。 语法: template<typename T> 类 解释: template 声明创建模板 typename 表面其后面的符号是一种数据类型,可以用class代替 T 通用的数据类型,名称
阅读全文
摘要:模板 1、模板的概念 模板就是建立通用的模具,大大提高复用性。 模板的特点: 1.模板不可以直接使用,它只是一个框架。 2.模板的通用并不是万能的。 2、模板函数 C++另一种编程思想称为:泛型编程, 主要利用的技术就是模板。 C++提供两种模板机制:函数模板 和 类模板 2.1函数模板语法 函数模
阅读全文
摘要:1、管理系统需求 职工管理系统可以用来管理公司内所有员工的信息。 公司中职工分为三类,普通员工、经历、老板。 显示信息时,需要显示职工编号,职工姓名、职工岗位,以及职责。 普通员工职责:完成经理交给的任务。 经理职责:完成老板交给的任务,并下发任务给员工。 老板职责:管理公司所有事务。 2、创建项目
阅读全文
摘要:文件操作 程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放。 通过文件可以将数据持久化 C++中对文件操作需要包含头文件 <fstream> 文件类型分为两种: 1.文本文件 文件以文本的ASCII码形式存储在计算机中 2.二进制文件: 文件以文本的二进制形式存储在计算机中,用户一般不
阅读全文
摘要:3月20号任务,对比示例代码,找到不足和错误, 更要注意思路问题! #include<iostream> using namespace std; //案例描述 //电脑主要组成部件为CPU,显卡,内存条 //将每个零件封装出抽象基类,并且提供不同的厂商生产不同的零件,例如Intel厂商提供cpu、
阅读全文
摘要:多态 多态:多种形态。 1、多态的基本概念 多态分为两类 1.静态多态 函数重载和运算符重载属于静态多态,复用函数名 2.动态多态 派生类和虚函数实现运行时多态 静态多态和动态多态区别: 1.静态多态的函数地址是早绑定的。 早绑定:编译阶段确定函数地址 2.动态多态的函数地址是晚绑定的。 晚绑定:运
阅读全文
摘要:继承 我们发现,定义这些类时,下级别的成员除了拥有上一级的共性,还有自己的特性,这个时候我们就可以考虑利用继承的技术,减少重复代码。 1、继承的基本语法 例如: 我们看到很多网站中,都有公共的头部,公共的底部,甚至公共的左侧列表,只有中心内容不同。 总结: 继承的好处:可以减少重复的代码 class
阅读全文
摘要:运算符重载:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。 1、加号运算符重载 作用:实现两个自定义数据类型相加的运算。 1.成员函数重载+号 class Person { public: Person() {}; Person(int a, int b) { this->m_
阅读全文
摘要:在程序里,有些私有属性,也想让类外特殊的一些函数或者类进行访问,就需要用到友元技术。 友元的目的就是让一个函数或者类,访问另一个类中的私有成员private。 友元的关键字:friend 友元的三种实现: 1、全局函数做友元 让一个全局函数可以访问一个类中的私有成员。 在类中对全局函数进行声明,并在
阅读全文
摘要:1、成员变量和成员函数分开存储 在C++中,类内的成员变量和成员函数分开存储 只有非静态成员变量才属于类的对象上 空对象占用内存空间为1。 C++编译器会为每个空对象也分配1个字节的空间,是为了区分空对象占内存的位置。 每个空对象也应该有一个独一无二的内存地址。 calss Person { int
阅读全文
摘要:1、生活中我们买电子产品都基本会有出厂设置,在某一天我们不用的时候也会删除一些自己信息数据来保证安全。 2、C++中的面向对象来源于生活,每个对象也都会有初始设置以及对象销毁前的清理数据的设置。 1、构造函数和析构函数 对象的初始化和清理也是两个非常重要的安全问题。 一个对象或者变量没有初始状态,对
阅读全文
摘要:封装是C++面向对象三大特征之一 1、封装的意义 封装实现了类的接口和实现的分离。 封装后的类隐藏了它的实现细节,也就是说,类的用户只能是使用接口而无法访问实现部分。 意义: 1、将属性和行为作为一个整体,表现生活中的事物。 在设计类的时候,属性和行为写在一起,表现事物。 语法:class 类名 {
阅读全文
摘要:1、函数默认参数 在C++语法中,函数的形参列表中的形参是可以有默认值的 语法:返回值类型 函数名 (参数 = 默认值){ } 如:void func(int a = 10){ } 注意1: 如果某个位置参数有默认值,那么这个位置往后,从左向右,必须都要有默认值! 如:void func(int a
阅读全文
摘要:1、引用的基本使用 引用的作用:给变量起别名 语法:数据类型 &别名 = 原名 为什么a输出的也是20? 因为不管我们呢是用原名a来操作它,还是用别名b来操作它,我们所修改的都是同一块内存。 回忆:操作系统中讲的共享 2、引用的注意事项 引用必须初始化 引用在初始化后,不可以再改变了! int ma
阅读全文
摘要:1.1 内存的分区模型 C++程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理的。 全局区:存放全局变量和静态变量以及常量。 栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等。 堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收。
阅读全文
摘要:1、const限定符 const对象一旦创建后其值就不能再改变! 与非const类型的对象所能参与的操作相比,const类型的对象能完成其中的大部分。主要的限制就是只能在const类型的对象上执行 不改变其内容的操作。 例如:const int和普通的 int一样都能参与算术运算,也都能转换为一个布
阅读全文