- 博客(28)
- 收藏
- 关注

原创 用函数模板写冒泡排序法
bubble_sort.cpp 记住这个写法,冒泡排序背下来 #include <iostream>using namespace std;//输入//函数模板template <typename T> //函数模板参数列表void get(T *array, int Len) //模板函数参数列表{ for(in...
2018-08-02 11:12:54
3960

原创 建立一个形状类Shape作为基类,派生出圆类Circle和矩形类Rectangle,求出面积并获取相关信息。
类的继承 作业题:(7月29日写)1.建立一个形状类Shape作为基类,派生出圆类Circle和矩形类Rectangle,求出面积并获取相关信息。具体要求如下:(1)形状类Shape(a)保护数据成员double x,y:对于不同的形状,x和y表示不同的含义,如对于圆,x和y均表示圆的半径,而对于矩形,x表示矩形的长,y表示矩形的宽。访问权限定义为保护类型是为了能被继承下去,以便派生类能...
2018-07-29 10:46:06
16132
1
原创 C++中模板类型推断
类型推导:类型推导规则问题1:我们为什么要掌握类型推导规则?答:只有当我们熟悉类型推导的规则,才能让我们的代码更加的灵活,通用性好。类型推导的作用:代码更加的灵活,通用性好类型推导的适用场景:函数模板、类模板(万能引用)autodecltypedecltype(auto)函数模板的类型推导规则:知识点1:万能引用(未定义引用)(只限定函数模板,在...
2020-02-14 18:27:12
1370
原创 STM32f4基本定时器终端控制LED灯亮灭
STM32中的定时器分类:基本定时器、通用定时器、高级定时器 。 429有2个高级定时器、10个通用定时器、2个基本定时器 基本定时器功能简介1-计数器16bit,只能向上计数,只有TIM6和TIM72-没有外部的GPIO,是内部资源,只能用来定时3-时钟来自PCLK1,可实现1~65536分频...
2019-01-30 10:45:38
2107
原创 Mysql的基本知识
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。Mysql是开源的,所以你不需要支付额外的费用。Mysql支持大型的数据库。可以处理拥有上千万条记录的大型数据库。MySQL使用标准的SQL数据语言形式。Mysql可以允许于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、...
2018-08-18 21:39:15
584
原创 QT的基本知识
QT是一个跨平台应用程序和UI开发框架。具体的安装以及源文件的下载这里不详细介绍。要在QT界面上添加一个按钮,可以有两种方法:一个是直接拖放一个按钮即可;另一种则是通过程序来添加一种按钮。QT提供的信号和槽机制,可以让任意两个对象之间进行消息处理,其作用就是让一个对象产生的信号能够被另一个对象接受并处理。QT基本所有的对象都集成在QObject对象中,在这个对象中有一个静态函数connect...
2018-08-16 21:29:39
18141
2
原创 设计模式之单例模式
设计模式可以分为三大类型:创建型模式;结构型模式;行为型模式设计模式的基本原则:(为了实现高内聚低耦合)1)开放封闭原则2)依赖倒置原则3)单一职责原则4)接口隔离原则5)里氏替换原则6)优先使用组合而不是继承原则7)迪米特法则常用设计模式1:单例模式(创建型模式)作用:保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象选择单例模式的...
2018-08-15 16:46:36
203
原创 set的基本知识及案例
set是一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入,所以不能指定插入位置。set采用红黑树变体的数据结构实现,红黑树属于平衡二叉树。在插入操作和删除操作上比vector快。set不可以直接存取元素。(不可以使用at.(pos)与[]操作符)。multiset与set的区别:set支持唯一键值,每个元素值只能出现一次;而multiset中...
2018-08-14 21:14:07
5589
原创 stack的基本知识及案例
stack简介stack是堆栈容器,是一种“先进后出”的容器。stack是简单地装饰deque容器而成为另外的一种容器。#include <stack> stack的默认构造stack采用模板类实现, stack对象的默认构造形式: stack <T> stkT; stack <int> stkInt; //一个存放int...
2018-08-13 10:16:40
584
原创 List的基本知识及案例
List简介list是一个双向链表容器,可高效地进行插入删除元素。list不可以随机存取元素,所以不支持at.(pos)函数与[]操作符。It++(ok) it+5(err)#include <list> List对象的默认构造list采用采用模板类实现,对象的默认构造形式:list<T> lstT; 如:list<int> lstInt; ...
2018-08-13 10:09:05
724
原创 deque的基本知识及案例
deque的基本知识 deque是“double-ended queue”的缩写,和vector一样都是STL的容器,deque是双端数组,而vector是单端的。deque在接口上和vector非常相似,在许多操作的地方可以直接替换。deque可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法,这个等下会详讲)。deque头部和尾部添加或移除元素都非常快速。但是在中部安...
2018-08-11 16:27:35
2679
原创 vector容器介绍
Vector概念vector是将元素置于一个动态数组中加以管理的容器。vector可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法)。vector尾部添加或移除元素非常快速,但是在中部或头部插入元素或移除元素比较费时。vector采用模板类实现,vector对象的默认构造形式 vector<T> vecT; eg...
2018-08-10 15:32:02
1315
1
原创 string容器详解
string是STL的字符串类型,通常用来表示字符串。而在使用string之前,字符串通常是用char*表示的。string与char*都可以用来表示字符串,那么二者有什么区别呢。string和char*的比较string是一个类, char*是一个指向字符的指针。string封装了char*,管理这个字符串,是一个char*型的容器。string不用考虑内存释放和越界。string管理...
2018-08-09 09:37:37
415
原创 STL标准模板基本概述
STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。现然主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。STL的从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),容器和算法通过迭代器可以进行无缝地连接。几乎所有的代码都采用了模板类和模板函数的方式,这相比于传统的...
2018-08-08 11:20:00
190
原创 用select函数写服务器
selectserver.csocket:建立套接字 bind:绑定 listen:监听 select: accept:接收消息 #include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <stdlib.h>#include ...
2018-08-07 10:32:27
361
原创 TCP的服务器与客户端
server.csocket:建立套接字 bind:绑定 listen:监听 accept:接受网络请求#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <stdlib.h>#include <netinet/in.h>...
2018-08-06 20:06:58
520
原创 异常处理机制
1)异常是一种程序控制机制,与函数机制独立和互补 函数是一种以栈结构展开的上下函数衔接的程序控制系统,异常是另一种控制结构,它依附于栈结构,却可以同时设置多个异常类型作为网捕条件,从而以类型匹配在栈机制中跳跃回馈.2)异常设计目的: 栈机制是一种高度节律性控制机制,面向对象编程却要求对象之间有方向、有目的的控制传动,从一开始,异常就是冲着改变程序控制结构,以适应面向对象程序更有...
2018-08-05 19:01:39
251
原创 c++中的类型转换
c语言中强制类型转换存在问题: 任意类型之间都可以进行转换,编译器很难判断其正确性; 在源码中无法快速定位所有使用强制类型转换的语句1.static_cast 用于基本类型之间的转换,但不能用于基本指针类型的转换。 用于有继承关系类对象之间的转换和指针之间的转化。 static_cast是在编译期间进行转换的,无法在运行时检测类型static_cast....
2018-08-04 14:55:09
193
原创 类模板
什么是类模板? 模板的目的就是为了淡化数据类型的要求,作出通用数据类型的模板。类中的成员变量和成员函数都牵涉到了数据类型。 在成员函数、成员变量以及基类中包含有类型参数的类称为类模板。 和函数模板一样,类模板只是一个模板,并不是真正的类。形式:template<class T1, class T2, ... ,class Tn> ...
2018-08-03 11:31:18
1988
原创 函数模板
以前写一个通用函数一般是函数重载。缺点:代码复用率不高,新类型参数出现,得重写函数。它不能解决返回值不同的问题。而且重载的函数内部大致一样,一错全错。多态,也只是重载的的另外一种体现。为了解决上面的不足所以有了函数模板。1.函数模板什么?答:严格来说函数模板并不是真正意义上的函数,它的类型不明确只有在调用的时候才知道。它是为了函数的通用而存在的。2.函数模板怎么写?格式就是:tem...
2018-08-02 10:17:47
190
原创 员工薪资问题
首先在Employee.h里面写入所需要的类,Manager,Technician,SalesMan,SaleManager.考录到SaleManager既有固定薪水又有提成,所以直接让它继承Manager和SaleMan,因此为了减省代码和空间,将manager和SaleMan都是虚继承。c++中没有java中接口这个概念,可以用纯虚函数实现接口 。为了计算销售人员的数目,用了两个静...
2018-08-01 21:09:07
399
原创 &&和||不能写重载函数
#include <iostream>using namespace std;class Test{private: int m_a;public: Test(int a); bool operator &&(Test &t); Test operator +(const Test &t);};Test::Test(int ...
2018-07-30 20:46:54
221
原创 malloc与new
malloc和free搭配使用;new和delete搭配使用普通的定义一个变量,他是存放在栈里,由操作系统管理,自动分配和释放若用malloc申请一个空间,就是在堆上进行操作,手动申请和释放int *p3=new int(100); //100为初始值int *p4=new int[100]; //初始化数组malloc和new的区别(转载自nie19940803的博客)...
2018-07-29 09:39:51
242
原创 如何建立一个存放学生信息的结构体链表
MyList类中使用了Student的对象作为私有变量 学生类作为一个单独的节点,有next指针,类似于一个结构体,再用MyList类建立链表,每次使用new运算符开辟一个新的结点 Student.h#ifndef _STUDENT_H#define _STUDENT_Hclass Student{private: char name[20]; int age; c...
2018-07-27 10:30:14
3030
原创 匿名对象生命周期只有一句代码
类的成员变量存放在堆或栈上,而成员函数存放在代码段上,所有的对象共享成员函数像Test(1,2);这种为匿名对象,特别之处是:这一行代码结束时,就自动调用析构函数;而Test t2(3,4);就是从代码开始创建一个对象,直到函数结束才被释放。Test t3(6,4); <<==== >> Test t3 =Test(6,4); #include &...
2018-07-26 15:35:20
250
原创 对象初始化列表
7月24日上课笔记:遇到有两个类 Birthday和Student同时都有含参数的构造函数,且在Student类中私有变量为Birthday m_birth;Birthday(int y, int m, int d); //有参数的构造参数 Birthday.cpp#include <iostream>using namespace std;...
2018-07-25 13:14:53
480
原创 建立一个圆类和点类,求出一个点和圆的关系。
CirclePoint.cpp7月22日上课记录:题目:建立一个圆类和点类,求出一个点和圆的关系。Point.h文件#ifndef _POINT_H#define _POINT_Hclass Point{private: int ind_x; int ind_y;public: void Set_Point(int x, int y); int GetDistanc...
2018-07-25 11:20:11
1188
原创 c++和c语言的区别
7月18日上课笔记:c++和c语言的区别:c++:程序中iostream为c++头文件;c++中必须要有返回值,哪怕是void(函数类型就是返回值类型)三目运算符(条件运算符)可以作为左值,因为它的返回值类型为变量而非表达式的值;cout << a << endl;为打印出a的值;const和define的区别:作用域不一样。const定义局部变量,...
2018-07-20 16:33:58
366
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人