自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (4)
  • 收藏
  • 关注

原创 多文件-自动售票机的例子

main.cpp#include "TicketMachine.h"int main(){ TicketMachine ti; ti.showmoney(); ti.insertmoney(100); ti.showtotal(); return 0;}TicketMachine.cpp#include "TicketMachine.h"#include <iostream>using namespace std;TicketMachi

2020-10-17 09:50:03 227

原创 泛型编程-模板(了解)

模板:模板(Template)指C++程序设计设计语言中采用类型作为参数的程序设计template <class T>void swap(T& x,T& y){ T temp = x; x =y; t= temp;}//调用swap<int>(num1, num2);类模板一个vector的例子,里面的函数,每个都是函数模板。定义如下template <class T> class Stack {publi

2020-10-17 09:49:45 134

原创 STL-set自定义排序及其遍历

#include <iostream>#include <set>#include <string>using namespace std;struct student{ int id; string name;};struct comp//起比较作用的结构体{ bool operator()(const student &a, const student &b) { return a.nam

2020-10-17 09:49:20 1185

原创 STL-常用容器

vectorvector(向量):是一种顺序容器,事实上和数组差不多,但它比数组更优越。一般来说数组不能动态拓展,因此在程序运行的时候不是浪费内存,就是造成越界。而vector正好弥补了这个缺陷,它的特征是相当于可分配拓展的数组,它的随机访问快,在中间插入和删除慢,但在末端插入和删除快。vector初始化vector操作vector<int> v1;v1.push_back() //在数组的最后添加一个数据v1.pop_back() //去掉数组的最后一个数据v1.fro

2020-10-17 09:48:47 130

原创 OOP-子类父类关系

构造一个子类时,父类的构造函数会被自动调用通过子类的构造函数来初始化父类的构造函数会先构造父类的对象,再构造子类析构则是先析构子类。#include <iostream>using namespace std;class A{public: A() { cout << "A::A()" << endl; } ~A() { cout << "A::~A()" <<

2020-10-17 09:48:26 126

原创 OOP-运算符重载原型

#include <iostream>using namespace std;//没有temp变量的都可以加引用,有temp的,如果加引用必须加static//如果是可以连用(如=),不改变其意思必须加引用//istream重载时,不能加const//类型转换重载时,不能加返回值//输入输出重载必须为友元class A{ int num; int *p;public: A(int aa) : num(aa) { p = ne

2020-10-17 09:48:09 215

原创 OOP-运算符重载

运算符重载:即写函数去改变运算符的功能以下的运算符都可以被重载双目算术运算符+ (加),-(减),*(乘),/(除),% (取模)关系运算符==(等于),!= (不等于),< (小于),> (大于>,<=(小于等于),>=(大于等于)逻辑运算符||(逻辑或),&&(逻辑与),!(逻辑非)单目运算符+ (正),-(负),*(指针),&(取地址)自增自减运算符++(自增),–(自减)位运算符| (按位或),&

2020-10-17 09:47:44 384

原创 OOP-向上造型

向上造型指将子类的对象当做是父类对象来看待定义一个父类类型的引用指向一个子类的对象既可以使用子类强大的功能,又可以抽取父类的共性。//manager是从employee继承过来的manager pete("pete","444-55-66666");employee* ep = &pete;//向上引用employee& er = pete;//向上引用子类中父类的东西在子类自己的东西的前面,子类的对象可以当父类的对象来使用以下代码说明了当一个类继承了另个类的时候它的内

2020-10-17 09:47:26 87

原创 OOP-拷贝构造

拷贝构造函数:复制构造函数是一种特殊的构造函数,具有单个形参,该形参(常用const修饰)是对该类类型的引用。当定义一个新对象并用一个同类型的对象对它进行初始化时,将显示使用复制构造函数。当该类型的对象传递给函数或从函数返回该类型的对象时,将隐式调用复制构造函数。成员的拷贝,有指针的话,就会有指针拷贝,两个指针指在同一片地址,引用同理。T::T(const T&amp);两种拷贝构造的方式#include <iostream>using namespace std;class

2020-10-17 09:47:07 230

原创 OOP-继承

用存在的类构造出新的类比如说学生从人继承的关系如下被继承的类:基类,超类,父类来继承的类:派生类,子类表示X继承A类class X : public A(){ }class A{public: A() : i(0) { cout << "A:A()" << endl; } ~A() { cout << "A:~A()" << endl

2020-10-17 09:46:46 196

原创 OOP-访问限制

public公用的,任何人都可以访问private私有的,类的成员函数可以访问,同一个类的对象可以互相访问private#include <iostream>using namespace std;class A{private: int i; int *p;public: A() { p = 0; cout << "A::A()" << endl; } ~A().

2020-10-16 16:48:44 187

原创 OOP-构造和析构

构造函数:为了用类的时候直接初始化,其名字必须和类的名字一样,在类被用的时候(创建对象),该函数直接被调用,没有返回值。class X{ int i;public: X(); //构造函数}构造函数允许重载,所以在实例化对象的时候,可以根据传入参数的不同选择不同的构造函数,但是只会执行其中的一个,具体执行哪一个,按照传入的参数。具体如下:#include <iostream>using namespace std;class ABC{ int d.

2020-10-16 16:48:25 478

原创 OOP-多态性

C++的多态性简单的说:允许将子类类型的指针赋值给父类类型的指针(一个接口,多种方法)。C++支持两种多态性:编译时多态性(静态多态):通过重载函数实现运行时多态性(动态多态):通过虚函数实现。在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数以下主要讲运行时多态最常见的用法就是声明基类的指针,利用该指针指向任意一个子类对象,调用相应的虚函数,可以根据指向的

2020-10-16 16:48:05 340

原创 OOP-对象组合

对象组合:把已有对象组合起来成员对象:一类的成员变量是另一个类的对象封闭类:包含成员对象的类#include <stdio.h>#include <iostream>using namespace std;class ctyre{private: int radius; int width;public: ctyre(int r, int w) : radius(r), width(w) {}};class cengine{};c

2020-10-16 16:47:50 272

原创 OOP-对象初始化

空间是进了大括号就分配了,构造函数是到了那行才运行int a[5] = {1, 2, 3, 4, 5};int b[6] = {5} //b[0] = 5 其他为0struct X{ int i; char c; float f;};X x1 = {1, 'c', 2.2}; //结构体的初始化X x2[3] = {{1, 'a', 1.1}, {2, 'b', 2.2}};struct Y{ float f; int i; Y(int a)

2020-10-16 16:47:35 143

原创 OOP-初始化列表

初始化变量构造函数:成员变量(初始值)struct foo{ string name; int id; foo(string s, int i):name(s), id(i){}; // 初始化列表};如果是这样,构造函数会在初始化之前执行[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LZOGS0LZ-1602588805200)(evernotecid://BDA4AB04-8A66-4642-AD7F-A41B5A94C267/appyinxi.

2020-10-16 16:47:17 134

原创 基础知识-头文件

定义一个类用分离的.h和.cpp定义一个类.h:类的声明和函数的原型,用函数或者类的和定义函数或者类的时候先include该头文件.cpp:函数的定义#:编译预处理一个.cpp文件就是一个编译单元一个头文件里面只能放声明什么是声明外部变量 如( extern int a,int a称为定义性声明)函数原型类和结构体的声明#include#include “” 在当前目录寻找#include <>在系统目录寻找...

2020-10-16 16:47:00 147

原创 基础知识-c++中不确定参数的函数的使用

#include <cstdio>#include <list>#include <string>#include <cstdarg>  //必须要加的头文件using namespace std; int f(int a...){ va_list ap; va_start(ap, a); //va_start函数将参数ap设置为可变参数列表的第一个参数 for(int i = 0; i < a; i++)

2020-10-16 16:46:37 257

原创 基础知识-异常处理

const用于定义常量const 代表改表不可修改,只能一开始赋初值必须要初始化,除非加externconst int class_size = 12;int finalGrade[class_size];int x;cin >> x;const int size = x;double classAverage[size];修饰指针如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于*的右侧,const就是修饰.

2020-10-16 16:46:20 50

原创 基础知识-explicit关键字

C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式)explicit关键字的作用就是防止类构造函数的隐式自动转换.class CExample { public: CExample(void); public: ~CExample(void); public: int m_iFirst;

2020-10-16 16:45:59 5082 7

原创 基础知识-this指针

this指针变量记录的是当前对象的内存地址,即this指针指向当前的对象!this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函数的隐含形参,对各成员的访问均通过this进行。例如,调用date.SetMonth(9) <===> SetMonth(&date, 9),this帮助完成了这一转换。这样理解类,就是

2020-10-13 19:26:33 89

原创 基础知识-new & delete

动态制造对象new: 动态内存分配,制造一个对象当我们使用关键字new在堆上动态创建一个对象A时,比如 A* p = new A(),它实际上做了三件事:向堆上申请一块内存空间(做够容纳对象A大小的数据)(operator new)调用构造函数 (调用A的构造函数(如果A有的话))(placement new)返回正确的指针delete:收回该对象当我们delete的时候也是如此,比如我们delete p的时候,其行为如下:定位到指针p所指向的内存空间,然后根据其类型,调用其自带的析构

2020-10-13 19:25:24 68

原创 基础知识-const的作用

const用于定义常量const 代表改表不可修改,只能一开始赋初值必须要初始化,除非加externconst int class_size = 12;int finalGrade[class_size];int x;cin >> x;const int size = x;double classAverage[size];修饰指针如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于*的右侧,const就是修饰.

2020-10-13 19:24:28 366

原创 基础知识-函数缺省参数值

定义:C++在声明函数原型时,可为一个或多个参数指定缺省参数值,以后调用此函数,若省略其中某一参数,C++自动地以缺省值作为相应参数的值。例如函数原型说明为:int add(int x=15,float y=20.56);当进行函数调用时,可以有以下几种形式1) add(100,79.8); // x=100,y=79.82) add(25); // x=25,y=20.563) add(); // x=15,y=20.56特别说明:只能在声明时设置默认参数

2020-10-13 19:18:47 1927

原创 基础知识-静态对象

静态数据成员静态成员可以实现多个对象之间的数据共享,并且使用静态数据成员还不会破坏隐藏的原则,即保证了安全性。因此,静态成员是类的所有对象中共享的成员,而不是某个对象的成员。静态数据成员在定义或说明时前面加关键字static。静态变量的定义静态成员初始化与一般数据成员初始化不同。静态数据成员初始化的格式如下:数据类型 类名::静态数据成员名 = 值; //静态变量的初始化静态全局变量:只能在这个文件中可以访问(c中)静态的本地变量:持久的静态的成员变量:在所有对象共享静态的成员函数:在所有对

2020-10-13 19:14:29 1136

原创 基础知识-内联函数

内联函数:当内联函数收到编译器的指示时,即可发生内联:编译器将使用函数的定义体来替代函数调用语句,这种替代行为发生在编译阶段而非程序运行阶段。把函数代码迁入调入的地方,但是保持函数的独立性,为了提高效率编译器在编译文件时,同一时间只能看见一个代码inline函数定义就是声明,必须放在.h文件以空间换时间如果函数是递归的或者是很复杂的,编译器可能不内联如果在class中的函数直接定义,则这里面的函数都被作为内联函数使用C++ inline函数是一种“用于实现的关键字”,而不是一种“用于声明的关

2020-10-13 19:13:06 296

原创 基础知识-引用

引用说明:引用的时候需要在定义的时候初始化&在此不是求地址运算,而是起标识作用。类型标识符是指目标变量的类型。声明引用时,必须同时对其进行初始化。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元。1、引用作为参数char c;char *p = &c;//指针char& r = c;//引用r是c的别名,用r和用f是一样的在参数表里,或者作为成员变量可以不初始化,但是如果是本地变量或者

2020-10-13 19:11:13 107

原创 基础知识-::的作用

作用域符号::的前面一般是类名称,后面一般是该类的成员名称,C++为例避免不同的类有名称相同的成员而采用作用域的方式进行区分。如:A,B表示两个类,在A,B中都有成员member。那么A::member就表示类A中的成员member,B::member就表示类B中的成员member。全局作用域符号当全局变量在局部函数中与其中某个变量重名,那么就可以用::来区分如:char zhou; //全局变量void sleep() { char zhou; //局部变量char(局部变量..

2020-10-13 19:06:55 2311

原创 基础知识-面向对象基本原理

什么是对象变量就是一个对象对象 = 属性 + 方法面向对象基本原理类和对象对象就是一个东西(实体),类就是一系列东西归的类(概念)。oop的五条原则一切东西都是对象程序就是很多对象构成实现特定功能每一个对象有由其他对象组成的它自己的内存。每个对象有个类型(先有类)。一个类型的所有的对象都能接收同样的东西,所有可以接收相同东西的对象可以归成一个类型。...

2020-10-13 19:05:20 1351

原创 LeetCode 19 删除链表的倒数第N个节点

题目:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list分析先使用一个指针来前进n次,然后距离终点就

2020-09-26 11:36:24 44

原创 c++stl容器用法

vectorvector(向量):是一种顺序容器,事实上和数组差不多,但它比数组更优越。一般来说数组不能动态拓展,因此在程序运行的时候不是浪费内存,就是造成越界。而vector正好弥补了这个缺陷,它的特征是相当于可分配拓展的数组,它的随机访问快,在中间插入和删除慢,但在末端插入和删除快。vector初始化[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kg6NLfiu-1600865876914)(https://i.loli.net/2020/09/22/4kawG

2020-09-23 20:58:25 103

原创 数据结构-线性表

线性表线性表的顺序表示和实现线性表的顺序储存结构线性表的数据结构定义线性表的插入线性表的删除线性表的归并优缺点线性表的链式表示和实现线性链表的逻辑状态线性链表的数据结构定义取链表中第i个元素链表的插入链表的删除链表的逆序插入链表归并链表多项式合并优缺点简单链表类的实现#include <iostream>using namespace std;class

2020-09-19 16:28:17 100

原创 Paper Reading:MobileNetV3

Searching for MobileNetV3Motivation使用NAS的方法去寻找一个速度更快的的网络ArchitectureEfficient Mobile Building Blocks MobileMobile block在MobileNet v2的基础上加了一个SE模块,并且使用swish新的激活函数同时利用MNAS技术来搜索全局的结构,比如说各个Mobile block怎么连接,再使用NetAdapt来优化每层的通道数,来平衡精度和延迟计算量。再手动设计调整最后

2020-08-12 14:24:16 164

原创 Paper Reading:Mnasnet: Platform-aware neural architecture search for mobile

Mnasnet: Platform-aware neural architecture search for mobileMotivation第一篇移动端自动设计网络,MnasNet的目的很简单就是设计出表现又好,效率又高的网络。Architecture之前的NAS算法(如ENAS)考虑更多的是模型最终结果是否是SOTA,MnasNet则是希望搜索出又小又有效的网络结构,因此将多个元素作为优化指标,包括准确率,在真实移动设备上的延迟等。最终定义的优化函数如下:????表示模型(model)??

2020-08-12 11:03:15 143

原创 Paper Reading:Efficient Neural Architecture Search via parameter Sharing

Efficient Neural Architecture Search via parameter SharingMotivation通过强制所有子模型共享权重从而提升了NAS的效率,克服了NAS算力成本巨大且耗时的缺陷,GPU运算时间缩短了1000倍以上。NAS的本质是在一个大的搜索图中找到合适的子图作为模型,也可以理解为使用单个有向无环图(single directed acyclic graph, DAG)来表示NAS的搜索空间。基于此,ENAS的DAG其实就是NAS搜索空间中所有可能的子模型

2020-08-12 11:01:01 113

原创 Paper Reading:Learning Transferable Architectures for Scalable Image Recognition

Learning Transferable Architectures for Scalable Image RecognitionMotivationNAS直接搜全部结构方法太慢,设计一个搜索空间较小的方法。即类似于LSTM中的子结构,重复堆叠这些子结构,从而得到较深的网络。Architecture对于两种不同的数据集,大致的设计了两种不同的网络结构,确定好整体结构后,按照以下步骤Step 1. Select a hidden state from hi, hi−1 or from t

2020-08-12 02:50:00 130

原创 Paper Reading:NEURAL ARCHITECTURE SEARCH WITH REINFORCEMENT LEARNING

NEURAL ARCHITECTURE SEARCH WITH REINFORCEMENT LEARNINGMotivation神经网络架构搜索的第一篇文章,将强化学习与深度学习结合。其主要目的是使用强化学习寻找最优网络,包括一个图像分类网络的卷积部分(表示层)和RNN的一个类似于LSTM的cell。由于现在的神经网络一般采用堆叠block的方式搭建而成,这种堆叠的超参数可以通过一个序列来表示。所以,NAS会使用一个RNN构成的控制器(controller)以概率随机采样一个网络结构,接着在CIFAR

2020-08-12 02:47:34 150

原创 Paper Reading:GhostNet: More Features from Cheap Operations

GhostNet: More Features from Cheap OperationsMotivation卷积神经网络中,特征冗余是其有效果的一大重要因素,为了解决CNN计算时会使用大量的计算量去计算冗余的特征的问题,这里提出了GhostNet。下图为ResNet-50里面特征图的可视化,可以看到有很多相似的特征图。ArchitectureGhost Module for More Features对于一般卷积来说,Y=X∗f+b,f∈c∗k∗k∗nY = X*f + b, f\in c

2020-08-11 22:12:28 145

原创 Paper Reading:ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design

ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture DesignMotivation以往的移动端的CNN设计在考虑计算节省时都直接致力于优化整体网络计算所需的Flops。但实际上一个网络模型的训练或推理过程Flops等计算只是其时间的一部分,其它像内存读写/外部数据IO操作等都会占不小比例的时间。所以不应只限于去片面追求理论Flops的减少, 该篇从内存访问代价(Memory Access Cost,MAC)和GPU并行性

2020-07-31 19:36:54 139

原创 Paper Reading: ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices

ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices(arXiv:1707.01083v2)Motivation专为计算能力非常有限(例如10-150 MFLOP)的移动设备设计的模型,且弥补了之前Group convolution的缺点ArchitectureChannel Shuffle for Group Convolutions假设卷积层具有g组,其输出具有g×n个通道; 首

2020-07-31 19:07:03 181

coco2017labels.zip

coco 数据集 label 。//////////////////////////////////

2020-10-19

vscode-linux-server

vscode remote ssh插件 linux server端软件。

2020-10-19

西安电子科技大学java聊天室大作业.zip

西安电子科技大学java聊天室大作业.zip。

2019-07-19

背包九讲算法及实现.pdf

背包九讲算法及实现.pdf

2019-07-19

空空如也

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

TA关注的人

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