自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(135)
  • 资源 (1)
  • 收藏
  • 关注

原创 数据结构6 插入排序

数据结构中,相关资料显示,效率低的排序算法共有3种,分别为冒泡排序,选择排序,与插入排序。在其余的两篇博客中,我分别介绍了冒泡排序与选择排序,接下来介绍最后一种排序: 插入排序。相关资料显示,在实际开发的过程中,插入排序比其他两种排序更为常用。那么何为插入排序?那么上面基础的 插入排序代码如下(为了表达一般性,利用函数模板):#include<iostream>...

2019-11-21 18:36:41 137

原创 c++ 纯虚函数与抽象类

c++中, 纯虚函数基于多态。1. 纯虚函数是一个在基类中说明的虚函数,在基类中没有定义,要求任何派生类都定义自己的版本。2. 纯虚函数为各派生类提供一个公共界面。3. 一个具有纯函数的基类称为抽象类。下面是一个面向抽象类编程的简单实例。#include<iostream>using namespace std;class Figure {public...

2019-11-21 11:21:26 117

原创 c++ 多态面试题的强化

内容来自: 传智播客

2019-11-20 14:57:06 162

原创 构造函数中调用虚函数,能实现多态吗?

内容来源: 传智播客c++面试中常常会问到一个问题:通过子类对象,在父类构造函数中调用虚函数,能实现多态吗?#iinclude<iostream>using namespace std;class A {public: int a; A(int a) { this->a = a; print(); } virtual void print() ...

2019-11-20 14:42:31 446

原创 c++ 多态原理剖析

内容来自: 传智播客 (学习C++基础的朋友,我强烈推荐传智播客的传智扫地僧的课程,真是我迄今为止见过将C++讲的最好的老师,没有别人。。)#include<iostream>using namespace std;// 多态class A {public: int a; A(int a) { this->a = a; } virtual void ...

2019-11-20 11:08:14 247

转载 【深度学习】批归一化(Batch Normalization)

https://blog.csdn.net/vict_wang/article/details/88075861

2019-11-19 21:54:30 142

原创 数据结构5 递归

【递归】递归是一种重要的编程思想,通常是指在函数的定义中使用函数自身的方法。也就是说,递归算法是一种直接或者间接调用自身函数或者方法的算法。递归算法的意义在于将问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。下图展示的是一个简单的阶乘的递归调用实例:从上面递归调用图中可以得到一下结论:1. 我们可以将递归调用过程看做一个栈的数据结构,先调用的函数先入...

2019-11-19 19:27:53 248

原创 数据结构4 顺序查找与折半查找

【顺序查找 (针对无序的数据,有序的数据可以用更高效的数据查找方式)】在无序的数据查找中, 顺序查找是最入门、最简单的算法,该算法虽然简单,但是当数据量增多时,查找效率较低。比如在100万数据中,平均需要查找大约50万次,从算法角度来说,是很难接受的。从算法角度来说,很自然要考虑到算法的优化。经过查找相关,关于无顺序数据处理,在数据库中有对应处理方法,还有可以创建索引,哈希方式处理等,嗯,...

2019-11-19 16:15:15 1423

原创 数据结构3 选择排序

【选择排序】选择排序算法与冒泡排序算法在性质上差不多,选择排序比冒泡排序的性能稍微好一点。主要原因在于冒泡排序每次在比较时同时可能要交换数据,因交换次数过多,所以传统的冒泡算法时间复杂度高。选择排序与冒泡算法本质上不同是: 选择排序设置一个标志量,根据这个标志量,只在每次扫描最后交换一次数据,而不像冒泡排序不停交换数据。相比于冒泡排序,选择排序是一种不稳定的排序算法。如何理解选择算法的...

2019-11-19 12:42:33 130

原创 数据结构2 冒泡排序

【数据结构--冒泡排序】冒泡排序是数据结构的第一个算法,,也是最简单的一个排序算法。冒泡排序就是把小的元素往前调或者把大的元素往后调。相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,是不会再交换的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。【基本的冒泡...

2019-11-18 18:45:00 366

原创 数据结构1 完成两个数据交换

【数据结构开篇】我的数据结构比较差,所以一点点学习吧,时间不负有心人。--------------------------------------------------------------------------------------------------------------------------------【数据结构】 完成两个数据交换 完成两个数据的交换虽然简...

2019-11-18 16:17:02 352

原创 c++ 重载、重写、重定义

代码来源: 传智播客我认为这个代码完美展示了重载、重写与重定义区别。另外,还有在重写后的子类同名函数会对父类同名函数产生覆盖问题。(我认为这个细节问题的原因在于: 你这样调用基于的出发点是函数重载, 但是不要忘记重载前提是只能发生在同一个类中。所以子类同名函数会对父类函数产生覆盖。。)#include<iostream>using namespace std;//...

2019-11-18 10:51:55 191

原创 c++ 虚析构函数

虚析构函数:虚析构函数为了解决 基类的指针指向派生类对象,并用基类的指针删除派生类对象。如果某个类不包含虚函数,那一般是表示它将不作为一个基类来使用。当一个类不准备作为基类使用时,使析构函数为虚一般是个坏主意。因为它会为类增加一个虚函数表,使得对象的体积翻倍,还有可能降低其可移植性。所以基本的一条是:无故的声明虚析构函数和永远不去声明一样是错误的。实际上,很多人这样总结:当且仅当类里包...

2019-11-18 09:41:03 162

原创 c++ 多继承及其二义性

内容来源: 传智播客上面继承关系中,b1类与b2类同时继承自b类,c类继承自b1类与b2类。所以当调用b类时,c++编译器不知道b类成员变量等到底是来源于b1还是b2类,会导致二义性,引起失败。#include<iostream>using namespace std;class B {public: int b=3; void print1() { c...

2019-11-17 20:19:55 141

原创 继承与组合混搭情况下, 构造与析构的调用规则

原则:先构造父类, 再构造成员变量,最后构造自己。先析构自己,再析构成员变量,最后析构父类。#include<iostream>using namespace std;class TestClass1{public: TestClass1() { cout << "A"; } ~TestClass1() { cout <&lt...

2019-11-17 17:42:07 135

原创 c++ 继承中的构造与析构

问题: 如何初始化父类成员? 父类与子类的构造函数的关系? 在子类对象构造时, 需要调用父类构造函数对其继承得来的成员进行初始化。 在子类对象析构时,需要调用父类析构函数对其继承得来的成员进行清理。继承中的构造与析构调用规则 1. 子类对象在创建时会首先调用父类的构造函数 2. 父类构造函数执行结束后,执行子类的构造函数 3. 当父类构造函数具有参数时...

2019-11-17 16:39:58 192

原创 c++ 类型兼容性原则

内容源自: 传智播客类型兼容性规则是指在需要基类对象的任何地方,都可以使用公有派生类的对象来替代。通过公有继承,派生类得到了基类中除构造函数、析构函数之外的所有成员。这样,公有派生类实际就具备了基类的所有功能,凡是基类能够解决的问题,公有派生类都可以解决。类型兼容性原则包含下面几种情况:1. 子类对象可以当做父类对象使用。2. 子类对象可以直接赋值给父类对象3, 子类对象可以直...

2019-11-17 15:57:52 1113

原创 c++ 运算符重载实现数组案例

#include<iostream>using namespace std;class Array {public: Array(int m_length); //构造函数 Array(const Array& obj); //拷贝构造函数 ~Array(); //析构函数 int length(); //求取数组长度 //a1[i] = i 需要重载[]操作...

2019-11-17 10:40:42 1156

原创 c++ 重载 输出流操作符

在C++中, 重载 << 只能使用全局函数,下面代码是具体实现。#include<iostream>using namespace std;class Complex {private: int a; int b;// friend void operator<<(ostream& out, Complex& c1); fri...

2019-11-16 20:20:02 211

原创 c++ 重载前置++ 与 前置--

#include<iostream>using namespace std;// 重载前置++ 前置-- 运算符class Complex {private: int a; int b; friend Complex& operator++(Complex& c1);public: Complex(int a, int b) { this-&g...

2019-11-16 16:59:23 416

原创 c++ 运算符重载的基本概念理解

为什么需要 运算符重载?当我们简单将两个整数相加时,c++编译器知道究竟该怎么做,但是当我们将两个复数类进行相加时,c++编译器并不知道该怎么做,此时就需要操作符重载。操作符重载函数形式一般分为两种:1. 全局函数(友元函数)2. 成员函数下面代码计算了两个复数对象之间相加与相减。 其中 + 运算符重载通过 友元函数 实现, - 运算符重载通过成员函数实现。#inc...

2019-11-16 16:19:42 244

原创 c++ 友元函数

c++中的友元函数作用是破坏了类的封装性,在类的内部的成员函数中,可对类的私有属性进行访问与修改,但是在类的外部,如果属性是private, 就无法对其进行修改。但是, 友元函数能够破坏类的封装性,在全局函数中, 能够对类的私有数据变量进行访问。要想使用友元函数,必须要在类中进行友元函数的声明,声明的位置不加限定,可以在public区域,也可以在private区域。下面代码是利用友元函...

2019-11-16 15:06:11 207

原创 c++ 如何管理类与对象

2019-11-15 16:21:40 617

原创 C++ 静态变量static

#include<iostream>using namespace std;class A {public: A(int a) { this->a = a; //this->b = b; } int ADD() { b = b + 1; return b; } void Print() { cout << "静态变量 b =...

2019-11-15 15:40:58 240

原创 c++ new与delete操作符

#include<iostream>using namespace std;/*c语言中 malloc freec++语言中 new delete 之间的区别*/void main1() { int* p = (int*)malloc(sizeof(int));//c语言分配基础数据类型 free(p);// c语言释放基础数据 int* p1 = new...

2019-11-15 14:34:34 106

原创 c++ 不要在构造函数中再次调用构造函数

【在构造函数函数中再次调用构造函数的危险】: 由于你再次调用的构造函数在原来的构造函数中是局部函数,所以再次调用的构造函数的所有的量可能都是局部变量,它在生命周期结束时,会面临被析构的危险,所以再次使用时就可能是垃圾值/#include<iostream>using namespace std;//在构造函数上添加新的构造函数 MyTest(int a, int b) {...

2019-11-15 13:22:29 320

原创 构造函数调用规则研究

1. 当类中没有定义任何一个构造函数时, C++编译器会提供默认无参构造函数与默认拷贝构造函数。2. 当类中定义了拷贝构造函数时, C++编译器不会提供无参构造函数。这里要注意,当你定义了一个拷贝构造函数,在创建对象时是不能直接调用无参数构造函数。3. 当类中定义了任意的非拷贝构造函数,c++编译器不会提供默认无参构造函数。4. 默认拷贝构造函数成员变量简...

2019-11-15 08:51:06 137

转载 常用激活i函数应用与总结

https://blog.csdn.net/tyhj_sf/article/details/79932893

2019-11-14 20:16:34 108

原创 c++中拷贝构造函数调用的四种场景

前两种场景如下,可以打断点进行调试。#include<iostream>using namespace std;//拷贝构造函数被调用的前两种情况class Test4{public: //两个参数的构造函数 Test4(int a, int b) { m_a = a; m_b = b; } //拷贝构造函数 Test4(const Test4&am...

2019-11-14 15:28:15 505

原创 c++ 有参构造函数的三种方式

c++中调用无参数构造函数..............#include <iostream>using namespace std;class A {public: //无参构造函数 A() { cout << "调用无参构造函数" << endl; } ~A() { cout << "调用析构函数" << ...

2019-11-14 12:43:35 1229

转载 c++ 为什么能实现函数重载

c++ 提供的函数重载机制极大利于编程,当处理相似的逻辑,只是参数等类型不同,函数重载可以发挥最大的价值。那么C++中函数重载为什么能实现? C语言中为什么不能实现,这要从编译器的底层说起。1. c语言中为什么不能支持函数重载?上面是编译器处理.c文件时,操作只是简单的在函数名前加上"_", 所以当写多个函数时,编译器不知道到底该调用哪个函数,所以导致编译出错。2...

2019-11-14 10:28:39 343

原创 IEEE ACCESS --我的第一篇科研论文

我的第一篇小论文终于接收了,投这个期刊,上网查了一下网上对其褒贬不一,但我觉得无论如何,总算对研究生阶段工作有个交代了。。此致,留下我的印记。。我的第二篇论文发表在IEEE Transactions on IntelligentTransportation,,哇咔咔,,希望上天眷顾我,让我中了吧。。此致,,敬礼。。...

2019-11-13 17:04:18 7380 19

原创 c++ 中的函数指针

#include<iostream>using namespace std;// 函数指针的基础语法void myfunc(int a) { cout << "a = " << a << endl;}void myfunc(int a, int b) { cout << "a = " << a <&lt...

2019-11-13 17:02:47 126

原创 c++ 宏替换与内联函数的区别

#include<iostream>using namespace std;#define MYFUNC(a, b) ((a) < (b) ? (a) : (b)) inline int myfunc(int a, int b){ return a < b ? a : b;}int main(){ int a = 1; int b = 3; /...

2019-11-13 14:50:48 170

原创 c++ 内联函数inline

c++中, 通过在函数返回值前加上关键字inline来实现内联函数是是一种机制,我们程序员声明内联函数后,完全不用关心它究竟如何实现的,跟正常的函数调用是一样的。#include<iostream>using namespace std;//内联函数定义inline void printA() { int a = 10; cout << "a = " ...

2019-11-13 14:34:31 119

原创 c++ 引用作为函数的返回值

c++ 引用的本质就是常量指针。当引用作为函数的返回值时,应该注意以下几点:1. 引用作为函数的返回值时,必须在定义函数时在函数名前加&2. 用引用作函数的返回值的最大好处是在内存中不产生返回值的副本。(我认为这样不仅节省了内存,同时提高了系统运行的效率)。3. 引用作为函数的返回值时,不能返回局部变量的引用。由于函数存在生命周期,他会在函数返回后被销毁,此时对临时变量的引...

2019-11-13 10:13:01 1512

转载 前向传播算法(Forward propagation)与反向传播算法(Back propagation)

https://blog.csdn.net/bitcarmanlee/article/details/78819025这是我见过对 FP BP最通俗易懂的描述。。

2019-11-02 10:02:27 121

原创 c++ 的浅拷贝与深拷贝理解

在涉及到类中的成员变量是指针时,这个时候如果使用浅拷贝就会非常容易出现对象指针悬置的问题,出现这种问题的原因是由于对象在局部区域使用后会依次析构,对于浅拷贝,他只是将变量内存的地址拷贝到另外一个变量,言外之意是这两个对象指向同一块空间,所以当一个对象析构时,另外一个对象再次析构时,就会出现异常,也就是浅拷贝在这里出现的问题。解决浅拷贝思路就是使用深拷贝,经过上述分析,所谓的深拷贝,实质上就是另...

2019-10-03 15:42:29 212

转载 Colab使用tensorboard

https://blog.csdn.net/leonardohaig/article/details/89923680

2019-09-24 17:06:00 568

转载 Python 中浅拷贝与深拷贝的区别

https://blog.csdn.net/weixin_38819889/article/details/86476528

2019-09-23 10:49:15 85

ACO-UAV-MISSION.zip

本代码利用二维环境下蚁群算法实现任务执行,可用于比如城市中无人配送任务并返回起点等情景.

2019-05-25

空空如也

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

TA关注的人

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