自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 资源 (1)

原创 Ubuntu18.04安装ROS Melodic步骤及问题解决

1 sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'2 sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C6543 sudo ap

2020-09-02 20:02:24 38

原创 AndroidStudio出现编译错误 Received close_notify during handshake解决方法

1 问题:在第一次使用AndroidStudio新建工程时编译不通过,提示“Received close_notify during handshake”错误2 原因:jcenter里面的一些需要的包下载不了引起的3 解决办法:修改build.gradle文件如下修改build.gradlebuildscript{ repositories{ //jcent...

2020-02-22 18:11:48 1491

原创 AndroidStudio自带模拟器无法root的解决方案

问题:-- 在控制台输入 adb shell 进入设备终端,然后输入 su, 发现报su命令找不到的错误-- 直接输入adb root, 无反应,查看文件目录,依然无权限分析问题:模拟器的问题,当然去找谷歌问问了,经过查询发现了这句话: The play image has the Google Play store already installed and you can inst...

2020-02-21 17:07:43 223

原创 数据结构与算法C++实现10:快速排序

1 最流行的排序算法、速度最快的排序算法2 1962年,C.A.R. Hoare 发明了快速排序算法3 privot: 枢轴、枢纽4 快速排序算法是一个递归的算法5 见案例(QuickSort.cpp)//// Created by z on 20-2-16.// 快速排序代码演示//#include <iostream>using namespace std;...

2020-02-16 13:40:25 63

原创 数据结构与算法C++实现9:插入排序

1 低级排序 -- 冒泡排序 -- 选择排序 -- 插入排序 低级排序中最快的算法 一个数组中取一个元素作为inner排好的,然后其他元素作为outer(未排序的),声明一个temp作为临时变量。 取outer中的一个元素复制给temp临时变量,用临时变量与inner中排好的元素从高到底进行比较,如果temp 低,则与inn...

2020-02-15 12:16:49 69

原创 数据结构与算法C++实现8:递归的排列组合(Permutations)

1 abc 经过排列组合有八种 abc, acb, bac, bca, cab, cba2 要点:void Permutations(char* p, const int k, const int m){ // b开头的,后面跟着c所有的排列 ...

2020-02-14 22:36:09 55

原创 数据结构与算法C++实现7:递归的折半查找

1 递归的是神,迭代的是人 -- 迭代的折半查找 -- 递归的折半查找2 见案例(zhebanchazhao1.cpp)/** * 本案例演示递归的折半查找与迭代的折半查找 * */#include <iostream>using namespace std;// 递归的折半查找 arg1:需要查找的数组  arg2:需要查找的数组中的元素 a...

2020-02-14 22:24:07 189

原创 数据结构与算法C++实现6:递归算法

1 递归是神,迭代的是人2 自己调用自己3 老奶奶讲故事4 计算阶乘 -- 使用递归 -- 使用迭代(也就是循环) -- 任何使用递归来解决的问题,都可以使用迭代来解决5 见案例(digui1.cpp)/** * Created by z on 20-2-11. * 递归算法演示阶乘 * n! = n * (n - 1)! * * 5! = 5 * 4...

2020-02-14 22:20:16 27

原创 数据结构与算法C++实现5:二分查找(Binary Search)

1 前提是数据事先已经排好顺序2 2^20 = 100万多(就是1M) 2^30 = 10亿多(就是1G)3 有趣的例子:兰州拉面4 见案例(erfenchazhao.cpp)//// Created by z on 20-2-11.// 二分查找算法演示//#include <iostream>using namespace std;// 函数声明...

2020-02-14 22:16:02 48

原创 数据结构与算法C++实现4:顺序查找算法

1 顺序查找与折半查找(二分查找)2 没有排序的数据:只能顺序查找3 顺序查找:速度慢 例如:100万个数据,平均要找50万次4 见案例(shunxuchazhao.cpp)//// Created by z on 20-2-11.// 顺序查找演示//#include <iostream>using namespace std;// 函数定义 ar...

2020-02-14 22:10:56 59

原创 数据结构与算法动画演示

可视化数据结构:各种算法动画演示链接

2020-02-13 21:33:07 113

原创 Ubuntu系统中搜狗输入法输入汉字时选栏乱码解决办法

解决方案:1 如果是刚装完搜狗输入法,则输入命令:sudo apt-get install -f,进行依懒性检查,判断是否却是依赖项.2 如果是之前一直可以输入中文的,突然无法输入,则不是依赖项的问题,此时输入命令:killall fcitx。这种方法只能管一时,每次重启、开机都得重新输入命令。3 如果2仍不能解决问题,则删除配置文件,Ubuntu下搜狗的配置文件在~/.config...

2020-02-12 23:48:22 41

原创 linux中rar压缩包的解压与压缩方法

1 进入网站https://www.rarlab.com/download.htm下载rar for linux x642 执行以下语句进行安装tar zxvf rarlinux-3.8.0.tar.gzcd rarmakemake install 3 压缩与解压缩演示解压缩演示: rar x etc.rar ./aa/ :将etc.rar压缩包解压到当前目录下的aa文件件内...

2020-02-12 21:44:08 194

原创 数据结构与算法C++实现3:选择排序(Selection Sort)

1 从当前未排序的整数中找一个最小的整数,将它放在已排序的整数列表的最后。2 要点:选择排序选最小的放在左边3 想象:一条毛巾4 冒泡排序 与 选择排序 -- 冒泡排序选最大的放在右边,选择排序选最小的放在左边 -- 选择排序扫描一遍选出最小的,放在左边(已排序数值的右边),一遍扫描只进行一次交换,速度比冒泡排序快。5 见案例(xuanzepaixu1.cpp)///...

2020-02-11 15:57:33 52

原创 数据结构与算法C++实现2:冒泡排序(Bubble Sort)

1 概念: 从左向右扫描数据,选择最大的数据,放在右边; 要点:比较相邻的两个数,如果左边的数大于右边的数就进行交换;2 C++中没有求数组长度的直接函数,需要自己定义3 C++中sizeof(arr)和strlen(arr)的区别 sizeof(arr)是arr数组分配的内存分配的空间来计算 strlen(arr)是以arr数组实际占用的空间来计算的4 ...

2020-02-11 15:27:15 63

原创 数据结构与算法C++实现1:交换算法

1 形式 c语言中形式: void swap(int x, int y) --这个方法不行! void swap(int* px, int* py) //指针形式完成交换 define swap(x, y, t) ( (t) = (x), (x) = (y), (y) = (t)) // 宏定义形式完成交换 c++中形式: void swap(in...

2020-02-11 15:23:42 28

原创 C++学习笔记38:算法简介

1 算法就是一个个函数模板,大多数在中定义2 STL中提供能在各种容器中通用的算法,比如查找,排序等3 算法通过迭代器来操纵容器中的元素。许多算法可以对容器中的一个局部区间进行操作,因此需要两个参数,一个是起始元素的迭代器, 一个时终止元素的后面一个元素的迭代器。比如查找和排序4 有的算法返回一个迭代器。比如find()算法,在容器中找一个元素,并返回一个指向该元素的迭代器5 算法可以处理...

2020-02-09 17:42:24 55

原创 C++学习笔记37:迭代器

1 基本用法 -- 用于指向顺序容器和关联容器中的元素 -- 迭代器用法和指针类似 -- 有const和非const两种 -- 通过迭代器可以读取它指向的元素 -- 通过非const迭代器还能修改其指向的元素 -- 容器类:从容器模板定义出来的就叫容器类2 定义一个容器类的迭代器的方法: -- 容器类名::iterator 变量名; ...

2020-02-09 17:36:23 62

原创 C++学习笔记36:标准模板库STL

泛型程序设计1 C++语言的核心优势之一就是便于软件重用2 C++中有两个方面体现重用: 1 面向对象的思想:继承和多态, 标准类库 2 泛型程序设计的思想:模板机制,以及标准模板库STL3 简单的说就是使用模板的程序设计法。4 将一些常用的数据结构(比如链表, 数组, 二叉树 写成类模板)和算法(比如排序,查找 写成函数模板)写成模板,以后则不论数据结构...

2020-02-09 17:14:21 169

原创 C++学习笔记35:String类

1 基本知识 -- string类是模板类 typedef basic_string<char> string; -- 使用string类要包含头文件<string> -- string对象的初始化 - string s1("Hello"); - string month = "March"; ...

2020-02-09 17:04:21 48

原创 C++学习笔记34:类模板与派生、友元、静态成员变量

1 类模板与继承 -- 类模板从类模板派生(mubanpaisheng1.cpp)/** * 类模板从类模板派生 */#include <iostream>using namespace std;template <class T1, class T2>class A{ T1 v1; T2 v2;};templ...

2020-02-09 16:57:44 68

原创 C++学习笔记33:类模板

1 问题的提出 -- 为了多快好省地定义出一批相似的类,可以定义类模板,然后由类模板生成不同的类 -- 数组是一种常见的数据类型,元素可以是: - 整数 - 学生 - 字符串 - ...... -- 考虑一个数组类,需要提供的基本操作 - len():查看数组的长度 - getE...

2020-02-09 16:42:57 102

原创 C++学习笔记32:函数模板

1 泛型程序设计:使用模板的程序设计2 考虑问题:能否只写一个Swap就能交换各种类型的变量? 交换两个整形变量的值的Swap函数 void Swap(int& x, int& y) { int tmp = x; x = y; y = tmp; } 交换两个double型变量的值的Swap函数 void Swap(d...

2020-02-09 16:32:23 54

原创 C++学习笔记31:文件读写(二)

1 二进制文件读写 -- 二进制读文件 ifstream和fstream的成员函数 函数:istream& read(char* s, long n); 作用:将文件读指针指向的地方的n个字节内容,读入到内存地址s,然后将文件读指针向后移动n个字节(以ios::in方式打开文件时,文件读指针开始指向文件开头,以ios::ate方式打开...

2020-02-08 16:47:40 47

原创 C++学习笔记30:文件读写(一)

1 文件和流 -- 可以将顺序文件看做一个有限字符构成的顺序字符流,然后像对cin, cout一样的读写 -- ios --> istream --> ifstream:从文件中读取数据的流 -- ios --> ostream --> ofstream:向文件中写入数据的流 -- fstream:既可以读一个文件,也可以写一个文件2 创...

2020-02-08 16:40:24 66

原创 C++学习笔记29:流操纵算子

1 整数流的基数:流操纵算子 dec, oct, hex, setbase(指定任何进制输出)2 浮点数的精度(precision, setprecision)3 设置域宽(setw, width):例如想要输出一个整数时,要输出10个字符那么宽,实际上它没有10个字符那么宽,不足的部分我可以补空格或者补04 用户自定义的流操纵算子5 使用流操纵算子,需要 #include iom...

2020-02-08 16:34:40 126

原创 C++学习笔记28:输入与输出

1 与输入输出相关的类 (1) --> ifstream --> istream ios --> iostream --> fstream --> ostream: -->...

2020-02-08 16:28:53 40

原创 C++学习笔记27:虚析构函数、纯虚函数、抽象类

虚析构函数 1 问题:通过基类的指针删除派生类对象时,通常情况下只调用基类的析构函数 -- 但是,删除一个派生类的对象时,应该先调用派生类的析构函数,然后调用基类的析构函数 2 解决办法:把基类的析构函数声明为virtual -- 派生类的析构函数可以virtual不进行声明 -- 通过基类的指针删除派生类对象时,首先调用派生类的析构...

2020-02-05 12:01:12 53

原创 C++学习笔记26:多态的实现原理

思考: “多态”的关键在于通过基类指针或引用调用一个虚函数时,编译时不确定到底调用的是基类还是派生类的函数,运行时才确定---这叫“动态联编”。“动态联编”如何实现呢?实例(见duotaiyuanli.cpp)//// Created by z on 19-10-16.//#include <iostream>using namespace std;clas...

2020-02-05 11:56:24 28

原创 C++学习笔记25:多态案例

例子:几何形体处理程序 需求:输入若干个几何形体的参数,要求按面积排序输出。输出时要指明形状。 input: 第一行是几何形体数目n(不超过100).下面有n行,每行以一个字母c开头 若c是‘R’,代表是一个矩形,本行后面跟着两个整数,分别是矩形的宽和高; 若c是‘C’,代表是一个圆,本行后面跟着一个整数代表其半径; ...

2020-02-05 11:50:54 125

原创 C++学习笔记24:多态案例之魔法门英雄无敌

需求分析: 游戏:魔法门之英雄无敌 游戏中有很多种怪物,每种怪物都有一个类与之对应,每个怪物就是一个对象 类: CSoldier CDragon CPhonex CAngel 怪物能够互相攻击,攻击敌人和被攻击时都有相应的动作,动作是通过对象的成员函数实现。 问题:游戏升级时,需要添加新的怪物--雷鸟,如何编程才能使得升级的时候代码改动和增加量较小 ...

2020-02-04 22:45:13 450

原创 C++学习笔记23:虚函数和多态

虚函数 1 虚函数定义:在类的定义中,前面有virtual关键字的成员函数就是虚函数。 class base { virtual int get(); }; 2 int base::get(){} --virtual关键字只用在类定义里的函数声明中,写函数体时不用。 --构造函数...

2020-02-04 22:32:55 31

原创 C++学习笔记22:public继承的赋值兼容规则

1 派生类于基类赋值兼容规则 class base{}; class derived:public base{}; base b; derived d; (1)派生类的对象可以赋值给基类对象 b = d; // 原因:d中包含base对象,实际上就是把d中所包含的base对象的内容拷贝到b中。 (2)派生类对象可以初始化基类引...

2020-02-04 17:30:58 34

原创 C++学习笔记21:派生类的构造函数

1 例子(见本工程paishengleiconstructor.cpp)//// 派生类构造函数//#include <iostream>using namespace std;class Bug // 虫子类{private: int nLegs; // 腿数目 int nColor; // 颜色public: int nType;...

2020-02-04 17:26:02 52

原创 C++学习笔记20:派生类覆盖基类成员、类的保护成员

派生类覆盖基类成员1 覆盖定义: 派生类可以定义一个和基类成员同名的成员,这叫覆盖。 在派生类中访问这类成员时,缺省的情况时访问派生类中定义的成员。 要在派生类中访问由基类定义的同名成员时,要使用作用域符号::。2 例子(见本工程paishengfugai.cpp)//// 基类和派生类有同名成员的情况// 强调:不要在派生类和基类中写同名的成员变量#incl...

2020-02-04 17:13:34 155

原创 C++学习笔记19:继承关系和复合关系

1 继承:“是”关系。 -- 基类A, B是基类A的派生类。 -- 逻辑上要求:‘一个B对象也是一个A对象’2 复合:“有”关系。 -- 类C中“有”成员变量k,k是类D的对象,则C和D是复合关系 -- 一般逻辑上要求:“D对象是C对象的固有属性或者组成部分”3 继承关系的使用 Human为基类,Man类和Woman类为其子类。4 复合关系的使用...

2020-02-04 17:06:55 119

原创 C++学习笔记18:继承和派生

1 继承定义 在定义一个新的类B时,如果该类与某个已有的类A相似(指的是B拥有A的全部特点),那么就吧A作为一个基类,而把B作为基类的一个派生类(也称子类)。2 派生类 (1)通过对基类进行修改和扩充得到的。在派生类中,可以扩充新的成员变量和成员函数。 (2)派生类一经定义,可以独立使用,不依赖于基类。 (3)派生类拥有基类的全部成员函数和成员变量,不论是privat...

2020-02-04 17:03:40 61

原创 C++学习笔记17:自增自减运算符的重载

1 自增运算符++ 自减运算符-- 有前置/后置之分,为了区分所重载的是前置运算符还是后置运算符,C++规定: 前置运算符作为一元运算符重载 重载为成员函数: T& operator++(); T& operator--(); 重载为全局函数: T1& operator++(T2); T1& operato...

2020-02-04 10:01:51 61

原创 C++学习笔记16:类型转换运算符的重载

1 eg(见本工程leixingchongzai.cpp)//// 重载类型转换运算符案例//#include <iostream>using namespace std;class Complex{ double real, imag;public: Complex(double r = 0, double i = 0):real(r),imag(...

2020-02-04 09:52:41 78

原创 C++学习笔记15:流插入运算符和流提取运算符的重载

流插入运算符的重载问题 问题1:cout << 5 << "this"; 为什么该语句可以成立? 问题2:cout是什么? “<<”为什么能用在cout上?解答 cout是在iostream中定义的,ostream类的对象 “<<”能够用在cout上面,因为在iostr...

2020-02-04 09:49:26 128

CandC++api.zip

关于C++、C的最全的api文档,并且有最新的C++api查询,供大学参考学习。

2019-08-20

空空如也

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