自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

IM_GD

四旋翼无人机

  • 博客(48)
  • 资源 (1)
  • 收藏
  • 关注

原创 Linux Ubuntu基本操作指令

Linux的登录方式: 1. 本地登录                            2. 远程登录:putty使用查看运行级别:Linux运行级别0~6级,  0 关机   6 重启  1 单用户  2,3 多用户。可以通过runlevel 查看运行级别    logout 注销用户重新登录。关机指令:shutdown [option] time [warning-message]   ...

2018-06-10 17:01:22 14844 1

原创 C++学习总结(二十八)——STL容器与算法(二) 集合set multiset bitset 映射 map 以及散列hash的介绍

1.集合set的基本操作集合中不能包含重复的元素,如果包含重复的元素,则将被自动剔除。同时实现自动排序红黑树容器:例如数据:1 2 3 4 5 6 7经过排序后的结果为:                               4                   2                        6         1               3            ...

2018-06-02 17:05:38 423

原创 C++学习总结(二十七)——STL容器与算法(一) STL容器的组成,线性容器(array,vector,tuple,queue,deque,stack),链式容器(list)

STL容器:C++标准库的一部分,用C++ Template机制表达泛型的库,用泛型技术设计完成实例。Template特性:   (1)类模板偏特化,进行严格的类型检查。   (2)默认模板参数,模板中允许用默认参数。   (3)成员模板,模板类中包含模板函数   (4)关键字typename,类型前的标识,  typename T::SubType  *ptr   指向T中子类型的指针  tem...

2018-06-02 16:17:05 695

原创 MySQL数据库基本操作

上接上一篇 MySQL数据库/* 列属性相关数据类型 对数据进行统一的分类,从系统而言,可以统一的进行管理数据类型包括:数值类型,字符串类型,时间日期类型。*/-- 1, 数值型 -- 数值型包括:整数型,小数型-- a 整数型 -- Tinyint 迷你整型 1个字节 256 -- Smallint 小整型 2个字节 65535-- Mediumint 中 ...

2018-06-01 21:40:23 288

原创 C++学习总结(二十六)——RTTI类型检查,类指针类型转换

#include<iostream>using namespace std;//rtti实时类型检测//成员变量的覆盖,静态变量也会覆盖。//class A{public: int num=0; static int data; virtual void run()//拥有虚函数, { cout << "Arun"; }};int A::da...

2018-05-26 11:29:56 555

原创 C++学习总结——通过抽象类和派生创建异质链表

#include<iostream>#include<Windows.h>#include<stdlib.h>using namespace std;class base//抽象基类的定义{public: virtual void show() = 0;//通过纯虚函数定义公共接口};//链表结点定义class linknode{publ...

2018-05-23 21:16:09 1262

原创 C++ 学习总结(二十五)——流类库

一. 流类库的结构组成:1.流类库都派生于同一个基类:  class  streambuf派生类:   filebuf(文件缓存区)    strstreambuf(字符串缓存区)   stdiobuf(标准输入输出缓存区)2.基类:                                                          ios派生类:                  ...

2018-05-21 22:14:49 1110

原创 (ADRC)自抗扰控制器(二)——四旋翼无人机

自抗扰四旋翼控制中的几个问题:自抗扰控制器包含三大部分:TD微分跟踪器 :微风跟踪器主要可以安排过渡,过程同时还具有一定的滤波功能,四旋翼由遥控器和地面站发送期望控制信号,可以通过微分跟踪器安排过渡过程,加快响应速度,同时还可以用于对数据进行滤波。ESO扩张状态观测器:扩张观测器主要是进行扰动的观测,但是在用于姿态数据观测时,状态观测器观测到的数据是姿态与角速度数据,这些数据可以通过姿态解算和陀螺...

2018-05-11 22:10:20 13263 3

原创 C++学习总结(二十四)——类模板元编程,类模板重载

一.类模板元编程#include<iostream>template<int N>struct data{ enum { res = data<N - 1>::res + data<N - 2>::res};};template<>struct data<1>{ enum{res=1};};templat...

2018-04-29 22:16:32 441

原创 C++学习总结(二十三)——类模板作为模板参数,类模板与静态变量静态函数,类模板的嵌套,类模板函数包装器

一.类模板当做模板的参数#include<iostream>#include<string>using namespace std;//类模板当做一个类的参数template<class T>class ren //一个通用的类模板{ public: T name; ren(T t):name(t) { }};template&l...

2018-04-29 22:05:43 844 1

原创 C++学习总结(二十二)——类模板与友元(友元函数,友元类模板)

一.类模板与友元当友元函数在外部定义时,友元函数以及所属的类必须声明。 友元函数放在类模板的内部时,友元函数可以直接调用,无需加类限定符。#include<iostream>#include<string>#include<vector>using namespace std;template<class T>class A{ pu...

2018-04-29 21:21:10 612

原创 C++ 学习总结(二十一)——类模板与模板类的特点,类模板的继承方式以及的继承特点

一.类模板类模板通过实例化以后的对象被称为模板类1.类模板定义,类模板中的成员函数定义时,如果在外部定义,则需要加上类模板描述。#include<iostream>#include<vector>using namespace std;//函数模板template<typename T>T add(T a, T b){ return a + b;...

2018-04-28 22:35:43 1552

原创 C++学习总结(二十)——虚函数,虚函数的重载特性,纯虚函数抽象类,虚函数表,异质链表

虚函数:虚函数相当于函数指针,占用四个字节(对于32位),在类中虚函数占用四个字节,其成员函数不占类的内存。基类定义虚函数,优先调用子类中的同名函数,覆盖虚函数。基类指针访问不同派生对象,调用不同方法。注意:1.虚函数必须是类的成员函数         2.不能将友元函数说明为虚函数,但是虚函数可以是另一个类的友元。         3.析构函数可以是虚函数,但是构造函数不能是虚函数。#inclu...

2018-04-21 21:03:04 1217

原创 四旋翼无人机的设计与实现讲解

四旋翼无人机基于stm32的设计与实现过程。

2018-04-19 10:30:50 10145 1

原创 C++学习总结(十九)——类指针与引用

在用new delete操作类指针时,会自动调用类的构造和析构函数。而 molloc 与 free不会自动调用。#include<iostream>class myclass{public: int x=1; int y=2;public: void printxy(); myclass(int a, int b) :x(a), y(b) { std::cout ...

2018-04-14 11:06:46 346

原创 C++学习总结(十八)——类与类指针(子类指针与父类指针的指向问题,dynamic_cast与static_cast进行指针类型转换时的特点),类成员函数指针,类成员函数指针数组

一.类与类指针引用指向子类对象父类对象父类指针只能引用父类中的对象 fu *p=new zi;正常引用 fu *p=new fu;子类指针覆盖父类的同名函数 zi *p=new zi;子类不涉及内数据的会调用成功,执行成功。涉及内部数据的调用成功,执行失败,对于函数引用中,同名函数应加类说明。注意:在使用new和delete创建删除对象时,有如下情况:1. fu *pfu=new zi; //调用...

2018-04-14 10:49:59 938

原创 C++学习总结(十七)——联编与类成员函数的重载

一.联编包括:静态联编:连接在编译阶段实现,列如:重载函数动态联编:运行时进行,switch,if语句#include<iostream>#include<stdlib.h>//重载void go(int num){}void go(char *str){}//classclass A{public: void go() { std::c...

2018-04-13 22:21:26 204

原创 MySQL数据库

-- 登陆客户端cd C:\Program Files\MySQL\MySQL Server 5.7\binmysql.exe -hlocalhost -P3306 -uroot -p123456#创建数据库 -- 注释,双中划线加空格#数据库的创建create database mydatabase charset utf8; -- 创建关键字数据库,使用反引号ESC下面使用关键字...

2018-04-13 10:01:42 298

原创 四旋翼姿态解算原理

姿态结算原理旋转矩阵的建立如果要进行四旋翼姿态分析,那么需要进行坐标系与坐标系之间的转换,地理坐标系与四旋翼坐标系之间的联系如图2-6所示。四旋翼(Quad-rotor)分别绕三个轴转动的角度变化如图2-7 所示。图2-6 机体坐标与地面坐标的关系                                                图2-7 滚转角、俯仰角、偏航角示意图根据图2-6、图2...

2018-04-10 11:16:08 12439

原创 四旋翼无人机飞行原理

    根据四旋翼对称的组成结构有两种飞行姿态,一种是根据四旋翼十字对称的结构,将处于同一水平线的一对机架梁作为x轴另一对梁作为y轴的“+”型飞行姿态,另一种是将相应两个梁的对称轴线作为x轴,另一条对称轴线作为y轴的“X”型飞行姿态。                                                  (a)                              ...

2018-04-10 10:20:51 50144 4

原创 C++学习总结——顺序存储,链式存储,索引存储,哈希存储的优缺点,以及vector数组,list链表,十字链表,索引结构,hash表的实现

1.顺序存储   平均时间复杂度为O(n)   空间复杂度为O(0)查找,删除,增加的时间复杂度为O(0),修改的时间复杂度为O(1)优点:存储空间紧凑,容易进行查找缺点:插入删除需要移动大量元素。需要分配大量空间2.索引存储元素个数为M 索引数为N   查找的时间复杂度为O(M/N)  插入删除增加的时间复杂度为O(1) 本质为一个指针数组,数组的每一个元素可以是动态数组,链表,树或者图#pra...

2018-04-03 21:47:57 2514

原创 C++学习总结——vector容器的实现

//myvector.h#pragma oncetemplate<class T>class myvector{public: myvector(); ~myvector(); void push_back(T t); T* find(T t); void show(); void change(T* pos, T t); void del(T t); voi...

2018-03-31 22:13:28 245

原创 数据结构——树与二叉树的性质,二叉树的创建,遍历,插入,打印,查找左右兄弟等

#include<iostream>#include<string>#include<stack>using namespace std;#define MAX(x,y) (x) >= (y)?(x):(y)/*结点的层次:从根到该结点的层数(根节点算第一层)终端结点:度为0的结点,即叶子分支结点:除树根结点以外的结点,也称内部结点...

2018-03-19 16:13:30 484

原创 C++学习总结(十六)——类的继承,多继承,虚基类的继承

类的继承:1,类与类之间的关系:1>包含关系:类作为数据成员                                  2>一个类部分使用另一个类的数据成员和方法,通过定义友元                                  3>继承:传递关系,继承包含单继承和多继承2.继承的分类:1>公有继承:  基类的公有成员——>派生类的公有成员。继承...

2018-03-17 23:00:06 817

原创 C++学习总结(十 五)——类的类型装换方法

类与类间的数据类型转换方法有两种一.通过类的构造函数进行类与类间的数据类型装换二.使用转换函数进行数据类型的装换。X::operator T(){return T;}将X类型的对象装换为T类型的对象,装换函数没有参数,没有返回类型,但是必须用return 返回T类型对象,且该函数只能成为成员函数,不能为友元。#include<iostream>class complex{publ...

2018-03-11 17:04:33 426

原创 C++学习总结(十四)——类的运算符的重载原理,以及重载的实例

一.运算符重载原理1.运算符重载,对运算符做出新的解释。2.原有的基本语义不发生变化(优先级,结合性,操作数),且不能创建新的运算符。3.运算符可以重载为友元函数和成员函数,友元函数用于不同类的数据类型相加。二.重载实例1.输入输出流的重载输入输出重载需要定义为友元,并且引用流返回流。#includeclass fushu{public: int x=0;

2018-01-30 19:18:15 507

原创 C++学习总结(十三)——类中的指针与引用,以及new,delete的原理

一.类中的指针与引用的用法改变指针指向有两种方式:1.通过二级指针改变一级指针的指向。2.通过引用的方式改变指针的指向。#includeclass myclass{public: int x=1; int y=2;public: void printxy(); myclass(int a, int b) :x(a), y(b) { std::cout << "clas

2018-01-30 18:41:34 868

原创 C++学习总结(十二)——友元函数,友元类

一.友元函数用于访问私有数据和私有函数。#include#includeclass myclass {private: int num=0; void go() { system("notepad"); } void friend showdata(myclass *m) { m->go(); std::cout num << std::endl; }

2018-01-29 20:41:48 266

原创 C++学习总结(十一)——类的静态函数,成员函数的默认参数,类中包含引用和常量

一.类的静态成员变量,以及静态函数。静态成员变量:1.静态成员共享机制2.静态成员局部属于类,它不是对象的成员,位于静态区。3.静态成员变量需要在外部进行初始化。静态函数:1.静态成员函数都在代码区,类的静态函数都是共享的。2.类的大小不包含代码区,创建指向类方法的指针,需要指定所属的类。如有类函数void go();想要创建指向该函数的指针,则创建方式如下:cla

2018-01-28 21:55:57 2637

原创 C++ 学习总结(十)——C++类与对象,及构造函数,析构函数,拷贝构造函数

一.C++类与对象1.基本单位是类。2.类是数据和操作数据的函数的封装。3.对象使用自己的方法完成对数据的操作。4.类可以隐藏数据和操作细节,对象通过类结构与外部通信。C++与C进行代码重用是通过类和函数来实现的。C++同时可以通过类来限定数据访问得的权限。C++通过类的继承实现代码重用,类的封装实现权限封装,数据与代码合为一体。类的多态实现一个接口的多个功能。通过接口封装

2018-01-28 20:59:13 404

原创 Python学习总结(五)——函数定义及类的定义

'''def 函数名(): 函数体(函数要执行的语句)class 类名: 属性 方法'''#定义类class dog: #属性 color='白色' sex='公的' #功能 def setname(self,name): self.name=name def eat(self):

2018-01-24 22:25:33 294

原创 Python学习总结(四)——网络爬虫urllib库函数

#coding=utf-8'''import urllibb=urllib.urlopen('http://www.baidu.com')b.read()''''''Urllib是python内置的HTTP请求库包括以下模块urllib.request 请求模块urllib.error 异常处理模块urllib.parse

2018-01-23 23:19:34 520

原创 Python学习总结(三)——字符串函数

#字符串的函数str.count()#find("",start,end) 下标范围 找不到返回-1 rfind() 从右边开始查找str="hello world and itcast itcastpython"print(str.find("and"))#结果为12,a的位置print(str.find("AND"))#-1没有则返回-1print(str[12:15])print

2018-01-23 22:50:57 239

原创 C++学习总结(九)——C++数组array vector tuple

C++新类型数组:1.array静态数组大小在定义时固定,位于栈上。  #include#include#includevoid main1(){ double db[4] = {1.1,2.2,3.3,4.4}; std::array dbnew = { 10.1,10.2,10.3 }; for (auto a:dbnew) { std::cout <<a<<

2018-01-23 12:43:44 1463

原创 C++学习总结(八)——C++类型装换,inline内联函数

一.C++类型转换1.static_cast(转换数据) 用于一般数据类型转换。2.常量不能修改,const int num=10; 可以修改不生效,直接从常量表中读取,通过const_cast3.指针进行数据类型转换,类型决定了数据解析方式。地址与指针间转换。reinterpret_cast(转换数据的引用地址)。4.类的指针的转换,dynamic_cast二.inline内

2018-01-22 22:53:34 177

原创 Python学习总结(一)

一.Python的编译环境1.命令模式:通过在命令窗口下编译运行,安装Python解释器后,通过指令,>python Hello.py 2.交互模式:安装python的IDLE,通过交互式窗口进行解释执行。二.Python的输入输出1.输出器 print()print可以进行组合输出,通过“,”连接多个字符串进行输出。print("hello","world

2018-01-22 17:14:57 310

原创 C++学习总结(七)——函数包装器及函数指针的使用

一.函数包装器#include#includetemplateT run(T v, F f)//数据类型,函数{ static int count = 0;//限定同一个函数的调用次数 count++; std::cout << "执行" << count << std::endl; if (count > 1) { T vx(0); return vx; } r

2018-01-21 22:22:57 517

原创 C++学习总结(六)——函数模板

函数模板的一般形式:templateT max(T *p,const int n){ }一.不限定参数的函数模板#include#include#include//template NT sum(NT count,...) // 累加template NT sum(int count,NT data1...) // 累加{ va_list arg_ptr;//参数列表指针

2018-01-21 21:43:07 260

原创 C++学习总结(五)——结构体(struct),联合体(union)

一.C与C++的对比C语言:1.结构体内部不能包含函数。2.变量声明时必须加上struct。3.内部变量没有公有私有的区别。#define _CRT_SECURE_NO_WARNINGS#include#include#include/*C语言结构体内部不能包含函数C语言变量声明时必须加上StructC语言内部的变量没有公有私有*/struct mystruct

2018-01-21 20:41:50 1490

原创 C++学习总结(四)

一.new delete用法int *p=new int[80];//通过new申请内存空间int (*px)[10]=((int *)[10])p;1.new只能分配线性内存。2.基本数据类型可以直接delete,复杂的如,数组,对象数组应包含delete []p;  delete只能释放一次,释放后指向一个安全的地址。二.函数重载原理1.函数重载根据,参数类型不同

2018-01-18 13:00:04 202

空空如也

空空如也

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

TA关注的人

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