自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

超级霸霸强的博客

guys,we are 不断进步的coder

  • 博客(75)
  • 收藏
  • 关注

原创 string小练习

// string类的操作.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。// 题目://1.编写一个程序检查用户输入的单词是否为回文。例如,ATOYOTA是回文,因为该单词反转后与原来相同。//2.编写一个程序,告诉用户输入的句子包含多少个元音字母。//3.将字符串的字符交替地转换为大写。//4.编写一个程序,将4个string对象分别初始化为I、Love、STL和String,然后在这些字符串之间添加空格,再显示整个句子。//5.编写一个程序,显示字符串Good .

2020-07-30 16:33:16 184 1

原创 String类与wstring类的区别

String类与wstring类的区别本质区别存储字符的区别#include<iostream>#include<string>usingnamespacestd;intmain(){wstringwstr1=L"你好世界";//L+普通字符串=宽字符串constwchar_t*ch1=wstr1.c_str();//转化为宽字符类型的指针//s...

2020-07-30 15:09:24 2560 1

原创 初始STL容器&简单理论简介

目录STL容器简介什么是容器?容器中的迭代器的作用官方解释大白话解释“解引用”是什么意思?容器的分类为什么要选择容器类型?STL容器简介什么是容器?容器用来存储数据的,数据可以是用户自定义类型(对象),也可以是预定义类型。容器中的迭代器的作用官方解释STL中的迭代器是模板类,从某种程度上说,它们是泛型指针。这些模板类让程序员能够对STL容器进行操作。注意,操作也可以是以模板函数的方式提供的STL算法,迭代器是一座桥梁,让这些模板函数能够以一致而无.

2020-07-30 09:09:11 355

原创 跑马灯+蜂鸣器的位操作实现&什么是STM32中的位操作?

目录跑马灯+蜂鸣器的位操作实现代码部分Led.c部分Led.h部分Buzzer.c部分Buzzer.h部分位操作是什么?位操作代码的原理是什么?找到位操作函数定义位置明白位操作的实质转化:PBout(5) = 1 -> PortB pin5的地址 = 1“位带操作”寻址的实质跑马灯+蜂鸣器的位操作实现代码部分Led.c部分#include"buzzer.h"#include"stm32f10x.h"#include"...

2020-07-29 19:13:34 1292 1

原创 初识“位带操作”

目录初识“位带操作”什么是“位带操作”?STM32的“位带操作”为何会出现?STM32“位带操作”相较于C51的“位寻址操作”的优越性?如何通过“位带操作”实现对某一个IO口的操作?初识“位带操作”什么是“位带操作”?CPU不能直接对位带区中的单个数据位位寻址,只能通过对位带别名区的访问(或读/写)实现对位带区单个数据位的访问(或读/写),这种操作被称为位带操作。STM32的“位带操作”为何会出现?51单片机相信各位都用过,假设P1.1的IO口上挂了一个LED,.

2020-07-29 16:48:27 5277

原创 寄存器版本的跑马灯操作流程(战舰开发板V3)

目录寄存器版本的跑马灯操作流程(战舰开发板V3)跑马灯需要配置的IO口需要配置的寄存器RCC_APB2ENR外设时钟使能寄存器GPIOx_CRL端口配置低寄存器ODR端口输出寄存器BSRR端口位设置/清除寄存器BRR端口位清除寄存器IO口寄存器说明配置IO口的流程Led.cLed.hMain.c为什么对寄存器操作会是这种格式?(以RCC为例)RCC为何为指针?RCC是什么类型的指针?IO口配置的几种形式GPIO_Pin_n的宏定义格式

2020-07-29 08:42:17 1208

原创 String类的使用进阶

目录String类的使用进阶String类对象求子串的操作String类对象的查找操作Find函数调用格式代码示例String类中字符串的替换Replace函数调用格式代码示例String类中字符串的插入Insert函数的应用代码示例String类中字符段的擦除Erase函数的调用格式代码示例小练习题目代码示例String类的使用进阶String类对象求子串的操作#include<iostream>#in...

2020-07-28 10:12:35 301

原创 string类的使用基本技巧

目录String类的巧用String类对象的初始化String类对象返回C风格的字符数组指针String类对象中单个字符的访问String类对象的长度计算String类对象是否为空String类对象的赋值操作成员函数调用格式代码示例String类对象的增补操作成员函数调用格式代码示例String类对象的比较操作String类的巧用String类对象的初始化#include<iostream>#include<st...

2020-07-27 18:48:10 159

原创 C++容器之映射map的基本操作

目录C++容器之映射mapMap容器在内存中存在的形式为什么用map容器?Map容器的基本操作Map的常用成员函数函数列表反向迭代器rbegin()与rend()的使用迭代器begin()与end()的使用find()查找函数与swap()交换函数的使用插入函数insert()的使用C++容器之映射mapMap容器在内存中存在的形式如上图:第一个值称之为关键字(key),每个关键字只能在map中出现一次,是唯一的;第二个称之为该关键字的对应..

2020-07-27 16:52:09 682

原创 STM32跑马灯配置流程

目录跑马灯配置流程(战舰开发板V3)LED的初始化相应功能引脚的确定确保在文件中添加了相应库文件先建立LED硬件初始化文件并添加进项目工程中在创建好的文件中编写初始化LED硬件的程序编写main函数函数介绍外围设备时钟使能函数 “RCC_APB2PeriphClockCmd”引脚状态设置函数GPIO_Init引脚电平设置函数GPIO_SetBits&GPIO_ResetBits跑马灯配置流程(战舰开发板V3)LED的初始化 LED初.

2020-07-27 12:54:59 2806

原创 图论专有词汇解析

目录图论中的基础知识介绍时间复杂度枚举图稀疏图&稠密图度度与边的关系权重连通图与非连通图生成树图的邻接矩阵无向图的邻接矩阵有向图的邻接矩阵网的邻接矩阵网与图的区别图的关联矩阵无向图的关联矩阵有向图的关联矩阵参考图论中的基础知识介绍时间复杂度时间复杂度本质上是一个函数,它定性描述该算法的运行时间。枚举枚举就是一一列举图中各点之间的路径,在图中的点数量较少,邻接矩阵中0元素较多也就是通路较少的时候比较实.

2020-07-27 10:56:10 1006

原创 几个常用的matlab图论工具箱函数

Matlab图论工具箱的应用Matlab图论工具箱 命令名 功能 graphallshortestpaths 求图中所有顶点对之间的最短距离 graphconncomp 找无向图的连通分支,或有向图的强弱连通分支 graphisdag 测试有向图是否含有圈,不含圈返回1,否则返回0 graphisomorphism

2020-07-27 10:45:20 11726 4

原创 几个重要的GPIO基础知识

目录GPIO基础知识为何每次使用STM32相应的功能,都要是使能一下相应的时钟?开漏输出与推挽输出的不同之处推挽输出开漏输出GPIO的8中输入输出模式GPIO的基本构造以及模式工作的基本原理浮空输入的基本原理输入上拉模式输入下拉模式模拟输入开漏输出开漏复用输出模式推挽输出模式推挽复用输出模式GPIO基础知识为何每次使用STM32相应的功能,都要是使能一下相应的时钟?在学51单片机的时候,基本上接触不到I/O方向和外设时钟的概念,I.

2020-07-27 08:59:59 4862

原创 容器之链表list的特点说明以及基础函数应用

目录容器之链表list容器list相比于容器vector的优缺点存储内存连续性不同遍历数组的方式不同插入/擦去元素的效率不同迭代器本质不同容器list的相关操作插入元素擦去元素倒序排列函数reverse拷贝函数assign内存空间改变函数容器之链表list容器list相比于容器vector的优缺点存储内存连续性不同List容器存储空间不连续,不可以联系的访问数组的元素,但是vector存储空间是连续分布的,可以连续的通过下标访问数组元素。.

2020-07-26 09:09:37 488

原创 vector动态数组的基本操作

目录Vector动态数组的操作在数组中插入元素代码示例运行结果输出开始和结尾的元素代码示例运行结果在数组中删除元素代码示例运行结果清空数组&数组元素互换&判断数组是否为空程序示例运行结果小练习题目要求代码示例Vector动态数组的操作在数组中插入元素代码示例#include<iostream>#include<vector>usingnamespacestd;...

2020-07-25 17:45:34 537

原创 Vector动态数组的创建以及初始化

Vector动态数组的创建以及初始化Vector动态数组的特点① vector动态数组本质上也是数组,它是根据自己不断变化的元素个数,不断寻找适合自己的连续的存储空间,切记:vector动态数组的存储空间与静态数组相同是在内存中连续分布的;② vector动态数组可以从数组尾部不断插入新的元素,只能从尾部插入;③ vector动态数组不止长度在变化,它在内存中的位置也在发生变化,由于需要寻找适合存储自己的连续的内存区域,因此vector数组操作大量元素时效率有点低下;④ vector动态

2020-07-25 15:11:19 1237

原创 文件的IO操作之文件指针

文件的IO操作之文件指针文件指针介绍这里面说的文件指针也可以理解为文件内部记录读取或者写入的当前位置,不然程序如何知道下一次该从文件的什么位置开始读取或者写入呢?在读写文件的时候,每读取或者写入一个字节,磁盘中的文件指针就会向后移动一个字节。可以通过控制指针的位置,以便在我们需要的位置进行读写文件。文件流提供以下成员函数来读取或配置文件指针:tellg() 返回读取文件指针的当前位置tellp() 返回写入文件指针的当前位置seekg(指针偏移量)...

2020-07-25 08:51:05 814

原创 文件的基本IO操作

文件的IO操作//文件的IO操作之读写.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。//#include<iostream>#include<fstream>#include<string>usingnamespacestd;intmain(){ofstreamFileWrite("C:\\Users\\hgq15\\Desktop\\File.txt"...

2020-07-24 20:23:09 199

原创 用最简洁的代码弄懂类模板的继承

一定要注意格式!// 类模板的继承.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#include <string>using namespace std;template <typename Type1, typename Type2>class Cperson{private: Type1 name; Type2 sex;public: Cperson(Type1 .

2020-07-23 16:12:39 110

原创 类的组合的构造函数

// 类内声明另一个类的对象初始化方法(类的组合初始化方法).cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#include <string>using namespace std;class Cstudent{private: string name; int StudNumber;public: Cstudent(string name, int StudNumber...

2020-07-23 15:47:37 491

原创 探索拥有不同数量和类型的参数的函数调用的实质

每日练习程序说明://拥有不同数量和类型的参数的函数调用.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。//#include<iostream>usingnamespacestd;template<typenameType1,typenameType2>voidSum(Type1&solution,Type2add1)//累加的基础就是两个数相加{s...

2020-07-23 15:20:32 132

原创 用例子说明sizeof在应用时的注意事项

C++日常练习错误示例://课后习题14.5.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。//题目://编写一个简单的模板类,它存储两个数组,数组的类型是通过模板参数列表指定的。数组包含10个元素,模板类应包含存取器函数,可用于操作数组元素。#include<iostream>#include<tuple>#include<string>usingnamespacestd;...

2020-07-23 14:45:54 167

原创 static_assert与assert 两者的异同点

目录static_assert与assert两者的异同点为什么我这里说“static_assert主要在编译时期起作用”?(static_assert)当我们在编译阶段就满足了报错要求,会如何呢?(assert) 当我们在运行阶段就满足了报错要求,会如何呢?Static_assert相较于assert的优势Static_assert在实例中的常用形式static_assert与assert两者的异同点形同的是两者均为“用于断言的宏操作”,但是static_ass.

2020-07-22 21:00:51 895

原创 万能存储器:C++中的元胞数组的基本操作

目录万能存储器:C++中的元胞数组什么是元胞数组?元胞数组怎么用?代码示例Decltype是什么?该如何使用?Tuple_cat是什么?该如何使用?Tuple_size是什么?如何使用?Tuple_element什么作用?如何使用?注:size_t的使用万能存储器:C++中的元胞数组什么是元胞数组?元胞数组英文名字为“tuple”,他是个数据类型,但不是基本的数据类型,它更像是一个包含有各种数据类型的大杂烩,元胞数组本质上也是数组,但是它颠覆了数组的普遍.

2020-07-22 20:19:32 2291

原创 参数可变的模板的实质与熟练应用

目录参数可变的模板强大的C++提供的参数可变的模板参数可变的函数模板的实现如何计算输入了多少参数呢?参数可变的模板强大的C++提供的参数可变的模板参数可变的函数模板其实是基于基本函数模板进行无限制的叠加而来的,例如:我们可以设置一个“sum函数”来完成两个变量的和,进而以此为基础我们可以用“sum函数”实现3个数,4个数……n个数的和,这里只不过是执行了m哥sum函数的嵌套而已。参数可变的函数模板的实现#include<iostream>us...

2020-07-15 23:40:52 95

原创 C++中模板类的静态成员

目录C++中模板类的静态成员为什么需要模板类的静态成员?代码示例C++中模板类的静态成员为什么需要模板类的静态成员?模板类的静态成员和普通类,普通函数的静态成员一样,我们想在函数调用后留些信息,而且这些信息随着函数调用的次数发生改变,也就说函数或者类对象执行完后,并没有完全消除而是留下了一下踪迹,比如:函数调用次数,对象声明次数……等等。以类为例,这些变量为静态变量,他在所有类对象中存在,我们可以再每个对象中对其作出修改,可以作为对象之间沟通的桥梁。代码示例主要展示了如.

2020-07-15 22:24:18 3173

原创 巧用C++模板的实例化与具体化,避免误区

目录C++模板的实例化与具体化:因为实用!何为模板?C++模板实例化什么是C++模板的实例化?C++模板实例化代码示例C++模板具体化什么是C++模板的具体化?C++模板的具体化代码示例C++模板的实例化与具体化到底有什么用?C++模板的实例化与具体化:因为实用!何为模板?模板说白了就是实现支持处理一类功能的函数,例如:我们想要比较两个数的大小,我们不知道输入输出的类型具体是什么,我不想太具体这个函数,因为太具体的函数用处太狭窄不广泛,我的想法就是把这个函数设

2020-07-15 19:24:42 498

原创 意想不到的宏操作

目录意想不到的宏操作大家熟知的#define预定义常量:普通的文本替换预定义简单函数学会使用宏函数assert()来纠错Assert函数使用的基本方法不为人知的#define,#ifndef,#ifdef,#endif的妙用意想不到的宏操作大家熟知的#define预定义常量:普通的文本替换在预处理阶段定义的常量,无法规定他的返回值类型,返回什么完全依赖于输入,这对程序提出了严峻的考验,因此,我们要尽可能地避免用预定义的方式定义常量,这很快但不安全(这里的安全.

2020-07-15 09:57:35 174

原创 Const_cast类型转换符的用法

目录Const_cast类型转换符的用法Const_cast类型转换符的作用代码示例Const_cast类型转换符的用法Const_cast类型转换符的作用对const类型的变量用该类型转换符,用于去除变量本身的const限定,使得这个变量可以进行修改。代码示例#include<iostream>#include<string>usingnamespacestd;classCstudent{pri...

2020-07-14 15:45:42 178

原创 reinterpret_cast类型转换符的使用

目录reinterpret_cast类型转换符的使用从字面意思去理解“reinterpret_cast类型转换符”的含义代码示例reinterpret_cast类型转换符的使用从字面意思去理解“reinterpret_cast类型转换符”的含义Re+interpret汉语意思意为“重新编译”。这个类型转换符和C语言的强制类型转换极为相似,表示:“不管什么类型,相不相关,都直接暴力地强制类型转换”,但是这样的结果可能非常糟糕。例如:reinterpret_cast的使用使得“.

2020-07-14 15:03:02 830

原创 Dynamic_cast类型转换运算符的使用

目录Dynamic_cast类型转换运算符的使用相较于static_cast的优点代码示例Dynamic_cast类型转换运算符的使用相较于static_cast的优点Static_cast是在编译时发挥类型转换的作用,而dynamic_cast是在执行期间进行类型的转换。因此当你不知道类型转换有没有成功的时候,使用dynamic_cast进行错误检查是个不错的选择。当类型转换没成功时,会返回一个null指针,这样我们就可以用返回指针的值来判断转换有没有成功。但是编译过程中执行.

2020-07-14 11:41:35 341

原创 Static_cast类型转换符在继承中的使用

目录Static_cast类型转换符的使用类型转换的概念C++中cast的中文释义是什么?Static_cast类型转换符Static_cast类型转换符的优点Static_cast类型转换符的缺点Static_cast用于继承中相关类指针的转换(基类->派生类)Static_cast用于继承中相关类指针的转换(派生类->基类)Static_cast类型转换符的使用类型转换的概念类型转换是一种机制,让程序员能够暂时或永久性改变编译器对对象的解释。.

2020-07-14 10:49:46 715

原创 用explicit关键字避免类中可能的隐式转换

目录用explicit关键字避免类的隐式转换概念:对于类来说什么是隐式转换?代码示例初始化的表的隐式转换初始化表的显式转换用explicit避免重载类型转换操作符后所产生的隐式转换概念代码示例用explicit关键字避免类的隐式转换概念:对于类来说什么是隐式转换?我们常常用初始化表法来初始化类成员,初始化表的实质是调用类的构造函数,将初始化表中的元素进行隐式转换为类所能接受的类型。代码示例初始化的表的隐式转换#include<iost..

2020-07-14 09:50:26 360

原创 重载字面量运算符简单示例

目录重载字面量运算符简单示例何为字面量?示例说明对字符串进行操作代码示例输出结果重载字面量运算符简单示例何为字面量?字面量说白了就是“常量”,要实现常量之间的转换,那就必须要用到“重载字面量运算符”,自定义常量之间的转换关系。例如:有一个int型的量temp=32摄氏度,要把它转化为绝对温度temp1,那就必须重载一下字面量运算符。示例说明#include<iostream>usingnamespacestd;long...

2020-07-13 22:15:24 281

原创 []下标访问运算符的重载

目录[]下标访问运算符的重载大体思路代码示例[]下标访问运算符的重载大体思路在重载[]运算符的函数体内部,自定义自己想实现的操作功能。但是不能违反[]的基本功能——提取元素。您要是把[]作为其他操作使用,例如把[]作为实现类对象的加法运算,那就严重违反了基本规律,这样虽然没错,但是会导致您的思维逻辑混乱。其他代码注意事项均在代码注释中,请详细查看。代码示例#include<iostream>usingnamespacestd;...

2020-07-13 17:01:45 842

原创 赋值运算符重载形式的解析

赋值运算符重载形式的解析大体思路请看代码详细注释代码示例#include<iostream>usingnamespacestd;classCstudent{private:intbirth;char*name;public:Cstudent(intbirth,char*name=NULL){if(name==NULL)return;...

2020-07-13 16:07:40 90

原创 输出运算符与组合运算符的重载

目录运算符的重载-=与+=的重载的大体思路<<输出运算符重载的大体思路综合代码示例用普通成员函数重载<<运算符运算符的重载-=与+=的重载的大体思路重载这种计算的运算符,就是把如何计算类的这种计算封装在运算符重载函数中。<<输出运算符重载的大体思路C++ 能够使用流提取运算符 >> 和流插入运算符 << 来输入和输出内置的数据类型。您可以重载流提取运算符和流插入运算符来操作对象等用户自定义的数据类型。.

2020-07-13 15:25:39 149

原创 双目运算符+和-号的重载

双目运算符+和-号的重载重载+号双目运算符大体思路+运算符的重载关键就在于“自定义该类的加法运算该如何进行”,下列代码展示了两个字符型数组的加法。代码示例#include<iostream>#include<string>usingnamespacestd;classMyString{private:char*str1;public:MyString(char*str1)...

2020-07-13 09:22:39 327

原创 重载转换运算符

重载转换运算符大体思路我想要做的事是“输出日期”,但是我如果写”cout<<Data<<endl”,那肯定不行,因为Data类中含有的是多个混合数据类型,编译器不知道怎么输出,按什么方式什么形式输出。我们因此用重载数据类型转换符来把这些混合数据类型转化为cout可以识别的数据类型。我们知道字符数组和字符串的输出原理,因此我们可以用重载const char *类型的方式把全部要输出的东西全部以字符流的形式打印在屏幕上。代码示例#include<string&.

2020-07-12 21:35:44 230

原创 单目递增运算符的重载

单目递增运算符的重载单目递增运算符重载简介弹幕递增运算符重载(++)可分为前缀和后缀两种,即++I,i++两种。为此我们也将重载分为两类,前缀单目递增运算符重载与后缀弹幕递增运算符重载。系统默认++i这种类型的重载是正常情况下的重载,而i++这种类型的重载则被视为特殊情况下的单目运算符重载,需要加后缀运算标志。代码示例#include<iostream>#include<string>usingnamespacestd;clas...

2020-07-12 17:37:31 418

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除