
C++(C语言的延伸)
文章平均质量分 75
是我来晚了!
一起努力呀!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ 提高篇 9 之 STL 常用算法二
C++ 自学—— 常用排序算法sort 算法random_shuffle 算法merge 算法reverse 算法—— 常用拷贝和替换算法—— 常用算术生成算法—— 常用集合算法—— 常用排序算法 算法简介sort // 对容器内元素进行排序random_shuffle // (洗牌)指定范围内的元素随机调整次序merge // 容器元素合并,并存储到另一个容器中reverse // 反转指定范围内的元素sort 算法 功能描述对容器内元素进行排序 函数原型sort(iterato原创 2021-11-06 19:08:35 · 585 阅读 · 3 评论 -
C++ 提高篇 8 之 STL 常用算法一
C++ 自学STL 常用算法—— 常用遍历算法for_each 算法transform 算法—— 常用查找算法find 算法find_if 算法adjacent_find 算法binary_search 算法count 算法count_if 算法STL 常用算法 概述算法主要是由头文件 <algorithm> <functional> <numeric> 组成<algorithm> 是所有 STL 头文件中最大的一个,范围涉及到比较、交换、查找、遍历原创 2021-11-06 14:35:20 · 132 阅读 · 0 评论 -
C++ 提高篇 7 之 STL 函数对象
C++ 自学函数对象—— 函数对象的使用谓词—— 一元谓词—— 二元谓词函数对象 概念重载函数调用操作符的类,其对象常称为函数对象函数对象使用重载的 () 时,行为类似函数调用,也叫仿函数 本质函数对象(仿函数)是一个类,不是一个函数—— 函数对象的使用 特点函数对象在使用时,可以像普通函数那样调用,可以有参数,也可以有返回值#include <iostream>using namespace std;class addTwoNum {public: int原创 2021-11-05 21:16:09 · 314 阅读 · 2 评论 -
C++ 提高篇 6 之 set、map 容器
C++ 自学set 容器set 构造和赋值set 大小和交换set 插入和删除set 查找和统计pair 对组的使用set 和 multiset 的区别set 排序map 容器set 容器 特点所有元素在插入时自动被排序 本质set/multiset 属于关联式容器,底层结构用二叉树实现 set 和 multiset 的区别set 不允许容器中有重复的元素multiset 允许容器中有重复的元素set 构造和赋值 函数原型1. 构造函数set<T> s; // 默认原创 2021-11-04 16:02:23 · 685 阅读 · 0 评论 -
C++ 提高篇 5 之 stack、queue、list 容器
C++ 自学stack 容器queue 容器list 容器list 构造函数list 赋值和交换list 大小list 插入和删除list 数据存取list 反转和排序list 排序案例stack 容器概念stack(栈) 是一种先进后出的数据结构栈中只有顶端的元素才可以被外界使用,因此栈不予许有遍历行为常用接口1. 构造函数stack<T> st; // stack 采用模板类实现,默认构造函数stack<T> st1(const stack &st)原创 2021-11-02 20:54:52 · 407 阅读 · 4 评论 -
C++ 提高篇 4 之 deque 容器
C++ 自学deque 基本概念deque 构造函数deque 赋值操作deque 大小deque 插入和删除deque 数据存取deque 排序STL 案例 -- 评委打分deque 基本概念 功能双端数组,可以从头部进行插入和删除操作 deque 与 vector 的区别vector 对于头部的插入和删除效率低,数据量越大,效率越低deque 相对 vector 而言,头部的插入和删除效率更高vector 访问元素时的速度更快,这和二者的内部实现有关 deque 内部工作原理deq原创 2021-11-02 14:46:46 · 257 阅读 · 0 评论 -
C++ 提高篇 3 之 vector 容器
C++ 自学vector 基本概念vector 构造函数vector 赋值操作vector 容量和大小vector 基本概念 功能vector 数据结构和数组非常相似,也称为单端数组 vector 与普通数组的区别不同之处在于普通数组是静态空间,而 vector 可以动态扩展 动态扩展并不是在原空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝到新空间,释放原空间vector 容器的迭代器支持随机随机访问vector 构造函数 函数原型vector<T> v;原创 2021-11-02 12:10:36 · 314 阅读 · 1 评论 -
C++ 提高篇 2 之 STL 及 string 容器
C++ 自学STL 初识vector 存放内置数据类型vector 存放自定义数据类型vector 容器嵌套容器string 容器string 基本概念string 构造函数string 赋值操作string 字符串拼接string 查找和替换string 比较string 字符存取string 插入和删除string 子串STL 初识 STL 基本概念STL 标准模板库STL 从广义上分为:容器、算法和迭代器容器和算法之间通过迭代器进行无缝连接STL 几乎所有的代码都采用了模板类或者模板函数原创 2021-11-01 14:31:24 · 148 阅读 · 0 评论 -
C++ 提高篇 1 之模板
C++ 自学模板函数模板本阶段主要针对 C++ 泛型编程和 STL 技术做详细讲解模板模板就是建立通用的模具,大大提高复用性 模板的特点模板不能被直接使用,它只是一个框架模板的通用并不是万能的函数模板C++ 另一种编程思想称为泛型编程,主要利用的技术就是模板C++ 提供二种模板机制:函数模板和类模板 函数模板语法及其作用》》函数模板语法template<typename T>// 函数声明或定义// 使用函数模板// 函数名<具体的数据类型>(实参原创 2021-10-31 21:47:52 · 381 阅读 · 0 评论 -
C++ 核心案例 —— 基于多态的职工管理系统
C++ 自学创建管理类实现菜单功能实现退出功能实现职工类实现添加职工功能文件交互 - 写文件文件交互 - 读文件实现显示职工功能实现删除职工功能实现修改职工功能实现查找职工功能创建管理类管理类实现如下内容:》》》与用户的沟通菜单界面》》》对职工增删改查的操作》》》与文件的读写交互具体步骤第一步:在头文件和源文件夹下分别创建 workerManager.h 和 workerManager.cpp 文件第二步:头文件 workerManager.h 实现#pragma once // 防止头原创 2021-10-24 19:41:11 · 756 阅读 · 0 评论 -
C++ 核心篇 10 之文件操作
C++ 自学文件操作文本文件 - 写文件文本文件 - 读文件文件操作程序运行时产生的数据都属于临时数据,程序一旦运行结束将释放此类数据》》》通过文件可以将数据持久化C++ 中对文件进行操作需要包含头文件 <fstream>文件类型:文本文件和二进制文件》》》文本文件:文件以文本的 ASCII 码形式存储在计算机中》》》二进制文件:文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们操作文件的三大类:ofstream(写操作),ifstream(读操作),fstrea原创 2021-10-24 13:14:32 · 190 阅读 · 0 评论 -
C++ 核心篇 9 之类与对象 - 多态
C++ 自学多态的基本语法多态案例1 - 计算器类纯虚函数和抽象类多态案例2 - 学科学习过程虚析构和纯虚析构多态的基本语法 多态分为二类:静态多态和动态多态》》》静态多态:函数重载和运算符重载属于静态多态》》》动态多态:派生类和虚函数实现运行时多态 静态多态和动态多态区别:静态多态的函数地址早绑定(编译阶段确认函数地址)动态多态的函数地址晚绑定(运行阶段确认函数地址)程序举例#include <iostream>using namespace std;class Anim原创 2021-10-23 23:13:33 · 316 阅读 · 2 评论 -
C++ 核心篇 8 之类与对象 - 继承
C++ 自学继承的基本语法继承方式继承中的对象模型构造和析构顺序同名成员处理同名静态成员处理继承语法继承的基本语法 继承:为了实现类似于网站公共头部和公共底部,用来避免代码冗余 继承的语法:class 子类 :继承方式 1 父类 1,继承方式 2 父类 2… 别名:父类也称基类,子类也称派生类#include <iostream>using namespace std;// 页面头部class Head {public: // 构造函数 Head(){ cout &l原创 2021-10-23 13:18:46 · 720 阅读 · 0 评论 -
C++ 核心篇 7 之类与对象 - 运算符重载
C++ 自学运算符重载加号运算符重载左移运算符重载递增运算符重载递减运算符重载赋值运算符重载关系运算符重载函数调用运算符重载运算符重载 运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型加号运算符重载 作用:实现两个自定义数据类型相加的运算#include <iostream>using namespace std;class Person {public: // 构造函数 Person(int num1, int num2){ this原创 2021-10-17 23:36:01 · 199 阅读 · 0 评论 -
C++ 核心篇 6 之类与对象 - 友元
C++ 自学友元友元 关键词:friend 目的:让一个函数或一个类访问另一个类中的私有成员 友元的三种实现:全局函数做友元;类做友元;成员函数做友元第一种:全局函数做友元#include <iostream>using namespace std;class Student { // 全局函数做友元 friend void goodFriend(Student &s);public: int m_id; // 共享public: Student(in原创 2021-10-17 17:26:55 · 93 阅读 · 0 评论 -
C++ 核心篇 5 之类与对象 - 对象特性
C++ 自学前言构造函数和析构函数构造函数的分类以及调用拷贝构造函数调用时机前言 C++ 来源于生活,每个对象都会有初始设置以及销毁前的清除数据操作对象的初始化和清理也是二个非常重要的安全问题 一个对象或变量没有初始状态,对其使用结果是未知的;使用完变量或对象后,没有及时清理也会造成一定的安全隐患构造函数和析构函数 C++ 利用构造函数和析构函数解决了上述问题,这两个函数将会被编译器自动调用,完成对象的初始化和清理工作构造函数 构造函数:主要作用在于创建对象时为对象的属性赋值(构造函数由原创 2021-10-17 16:32:32 · 431 阅读 · 0 评论 -
C++ 核心篇 4 之类与对象 - 封装
C++ 自学封装的意义封装意义1 -- 属性和方法作为整体封装意义2 -- 访问权限struct 和 class 的区别成员属性私有化封装的意义 封装是 C++ 面向对象三大特征之一 封装的意义:将属性和行为作为一个整体,表现生活中的事物;将属性和行为加以权限控制封装意义1 – 属性和方法作为整体 语法:class 类名 { 访问权限:属性 / 权限 }实例 1:设计圆类并求其周长#include <iostream>using namespace std;// 圆周率原创 2021-10-15 11:34:24 · 180 阅读 · 0 评论 -
C++ 核心篇 3 之函数高级
C++ 自学函数默认参数函数的占位参数函数重载函数默认参数 在 C++ 中,函数的形参列表是可以有默认值的 语法:返回值类型 函数名 ( 参数 = 默认值 ) { 代码体 }重点1:如果某个位置参数有默认值,那么从这个参数往后都要有默认值#include <iostream>using namespace std;// 错误示例//void func1(int a, int b = 10, int c) {// pass//}// 正确示例void func2(in原创 2021-10-13 17:58:00 · 184 阅读 · 0 评论 -
C++ 核心篇 2 之引用
C++ 自学引用的基本使用引用作为函数参数引用作为函数返回值简而言之的知识点如下: 知识点1:引用的修改会间接改变原变量的值引用的基本使用 作用:给变量起别名 语法:数据类型 &别名 = 原名重点1:修改引用的值也就修改了原始变量的值#include <iostream>using namespace std;int main() { // 定义整型变量 int num = 10; // 定义引用并指向变量 num int &a = num;原创 2021-10-13 16:52:42 · 1133 阅读 · 0 评论 -
C++ 核心篇 1 之内存模型
C++ 自学内存四区程序运行前程序运行后new 操作符内存四区C++ 程序在执行时,将内存划分为 4 个区域 代码区:存放函数体的二进制代码,由操作系统进行管理 全局区:存放全局变量和静态变量以及常量 栈区:由编译器自动分配释放,存放函数的参数值、局部变量等 堆区:由程序员分配和释放,若程序员没有释放,程序结束时由操作系统回收内存四区的意义不同区域存放的数据,赋予不同的生命周期,达到最大的灵活编程程序运行前在程序编译后,生成了 exe 可执行程序但未执行该程序前分为 2 个区域 代原创 2021-10-10 18:02:29 · 90 阅读 · 0 评论 -
C++ 基础篇 8 之结构体
C++ 自学结构体基本概念结构体定义和使用结构体数组结构体指针结构体嵌套结构体结构体作函数参数结构体中 const 使用场景结构体基本概念结构体属于用户自定义的数据类型,允许用户存储不同的数据类型结构体定义和使用语法:struct 结构体名 {结构体成员列表};通过结构体创建变量的方法:struct 结构体名 变量名;struct 结构体名 变量名 = {成员1,成员2…};定义结构体时顺便创建变量 程序举例#include <iostream>using namespace s原创 2021-09-02 14:56:31 · 566 阅读 · 4 评论 -
C++ 基础篇 7 之指针
C++ 自学指针指针变量的定义和使用指针所占内存空间空指针和野指针const 修饰指针指针和数组指针和函数指针、数组、函数指针基本概念:可以通过指针间接访问内存内存编号是从 0 开始记录的,一般用十六进制数字表示;可以利用指针变量保存地址指针变量的定义和使用语法:数据类型 * 变量名; 程序举例#include <iostream>using namespace std;int main(){ // 定义指针 // 1. 定义整型变量 int a = 10; //原创 2021-09-02 14:12:04 · 129 阅读 · 3 评论 -
C++ 基础篇 6 之函数
C++ 自学函数函数的调用值传递函数的常见样式函数的声明函数的分文件编写函数概括:将一段经常使用的代码封装起来,减少重复代码特别关注:返回值类型;函数名;参数列表;函数体语句;return 表达式 语法返回值类型 函数名(参数列表){ 函数体语句 return 表达式} 案例:实现二个数的加法运算#include <iostream>using namespace std;int add(int num1, int num2){ int sum = num1原创 2021-09-01 19:56:19 · 211 阅读 · 0 评论 -
C++ 基础篇 5 之数组
C++ 自学数组数组概括:数组就当成一个集合,里面存放了相同类型的数据元素特点:数组中的每个数据元素都是相同的数据类型;数组是由连续的内存位置组成的数组元素的创建原创 2021-09-01 18:52:32 · 419 阅读 · 0 评论 -
C++ 基础篇 4 之程序流程结构
C++ 自学程序流程控制选择结构循环结构程序流程控制C/C++ 支持最基本的三种程序运行结构:顺序结构、选择结构和循环结构 顺序结构程序按顺序执行,不发生跳转 选择结构依据条件是否满足,有选择的执行相应功能 循环结构依据条件是否满足,循环多次执行某段代码选择结构 if 语句作用:执行满足条件的语句三种形式:单行格式的 if 语句、多行格式的 if 语句和多条件的 if 语句 单行格式的 if 语句语法:if(条件){条件满足执行的语句}注意:在 if 判断语句后面不要加上分号原创 2021-08-30 20:57:31 · 158 阅读 · 0 评论 -
C++ 基础篇 3 之运算符
C++ 自学运算符算术运算符赋值运算符比较运算符逻辑运算符运算符作用:用于执行代码的运算算术运算符作用:用于处理四则运算运算符示例结果+4 + 26-4 - 22*4 * 28/4 / 22%4 % 20++4++5除法运算中,二个整数相除的结果依然是整数,除数不能为 0,且二个小数也可以相除#include <iostream>using namespace std;int main() {原创 2021-08-28 01:07:47 · 146 阅读 · 3 评论 -
C++ 基础篇 2 之数据类型
C++ 自学数据类型整型及 sizeof 关键字实型(浮点型)及字符型转义字符字符串型布尔类型(bool)数据的输入数据类型C++ 规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给其分配内存空间整型及 sizeof 关键字整型作用:整型变量表示的是整数类型的数据C++ 中表示整型有几种方法,区别在于所占的内存空间不同数据类型占用空间(字节)取值范围short2-2^15 ~ 2^15-1int4-2^31 ~ 2^31-1long原创 2021-08-28 00:18:44 · 704 阅读 · 0 评论 -
C++ 基础篇 1 之初识
C++ 自学第一个 C++ 程序单行注释和多行注释变量和常量关键字及标识符命名规则第一个 C++ 程序#include <iostream>using namespace std;int main() { cout << "Hello World" << endl; system("pause"); return 0;}第一个头文件的用处是处理 I/O 操作std::cout << "Hello World" << std原创 2021-08-27 22:58:09 · 172 阅读 · 0 评论 -
C++ 基础案例 —— 通讯录管理系统
C++ 自学文章的目的何在头文件介绍创建项目(此处省略)实现菜单功能实现退出功能实现添加联系人功能实现显示联系人功能实现删除联系人功能实现查找联系人功能实现修改联系人功能实现清空联系人功能项目源代码文章的目的何在1. 对于有 C 基础的同学出于学校的假期作业要求,我学习了 C++ 编程,由于在大一期间我学习过 C 语言,所以学习起来也不是很困难,这篇文章算是一个小综合案例,涉及了 C++ 很大一部分知识,先学习此篇文章的目的在于让大家先了解一下自己的编程基础,进行查漏补缺2. 对于没有 C 基础的原创 2021-08-27 16:42:22 · 734 阅读 · 0 评论 -
C++(第三章——封装下)
“天空很美、是吧?”C++(内容基于慕课网James _ yuan课程)1、对象成员与对象数组1.1、C++对象数组1.2、C++对象数组实践2、3、这篇文章将带我们了解到(以后内容将头文件省略):C++的对象成员C++的对象数组C++的深拷贝和浅拷贝C++的对象指针和对象指针成员C++的this指针C++的const + 对象、函数、对象成员1、对象成员与对象数组1.1、C++对象数组从栈中从栈中开辟对象数组 Coordinate coord[3]对对象里面的数据成员.原创 2021-01-18 20:21:37 · 143 阅读 · 0 评论 -
C++(第三章——封装上)
“总有一个地方的夕阳很美、我们一起去看看吧?”C++(内容基于慕课网James_yuan课程)1、类与对象初体验1.1、C++类与对象1.2、C++类对象的定义2、3、这篇文章将带我们了解到(以后内容将头文件省略):C++中的类与对象C++中的数据成员和成员函数C++中的构造函数和析构函数C++中的对象复制和对象赋值C++中的对象数组和对象指针C++中的this指针1、类与对象初体验1.1、C++类与对象类与对象的定义类是抽象的、而对象是具体的我们举一个例子、若我们将一.原创 2021-01-17 23:00:07 · 191 阅读 · 0 评论 -
C++(第一篇——起航)
C++(内容基于慕课网James_yuan课程)1、 IDE环境构建2、C++基本知识首先我们需要知道:C++的诞生地——贝尔实验室(Bell lab)C++之父——比雅尼·斯特劳斯特鲁普博士(为人低调、有问必答)C++从上个世纪沿用至今,在C++社区排行榜上一直名列前茅C是C++的子集,拿着C的代码在C++的IDE环境中编译是完全没有问题的C++是从C的基础上发展来;C语言面向过程、C++支持面向过程+支持面向对象学习C++也就需要有C语言的基础1、 IDE环境构建此处不详细介绍ID原创 2021-01-15 21:00:19 · 343 阅读 · 0 评论 -
C++(第二篇——离港)
“以梦为马 不负韶华”C++(内容基于慕课网James_yuan课程)1、C++语言引用2、3、这篇文章将带我们了解到(以后内容将头文件省略):C语言的指针与C++的引用C语言的#define与C++的constC++提供了函数默认值与函数重载C++的头痛问题—内存管理1、C++语言引用概念:引用是变量的一个别名(但是只存在别名是行不通的)基本数据类型的引用下列代码块中&b即是变量a的引用,但是只存在&b是行不通的,必须在引用的同时进行赋值int main.原创 2021-01-16 16:23:51 · 1169 阅读 · 0 评论