自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (4)
  • 问答 (2)
  • 收藏
  • 关注

原创 1 栈-OOP

栈实现的是后进先出(先进后出)策略,队列实现的是先进先出策略。1 栈栈上的操作主要包括INSERT操作称为压入(PUSH)。注意上溢问题,即往满栈里添加元素。无参数版本的DELETE操作称为弹出(POP)。注意下溢问题,即从空栈上取元素。STACK-EMPTY判断栈是否为空栈的实现思路用一个数组s[1..n]来实现一个最多可容纳n个元素的栈。该数组有一个参数s.top用

2016-05-10 10:12:36 820

原创 字符串数组反转输出 以空格为单词分隔符 C++

给出字符串数组及其长度,字符串有若干单词和空格组成,下边代码将数组中单词反转输出,输入”Welcom to Hubei Wuhan”输出为“Wuhan Hubei to Welcom”代码思路为: 1. 定义两个指针,分别指向一个单词的开头和结尾地址 2. 从字符串数组尾部开始检索单词,以空格为单词结束标志 3. 将两个指针区间的字符输出#include <iostream>usi

2015-11-18 16:51:34 3623

原创 gdb

gdb一般命令: 1. (gdb) l:从第一行开始例出原码 2. (gdb) break 1: 设置断点,在源程序第1行处 3. (gdb) info break: 查看断点信息 4. (gdb) r: 运行程序,run命令简写 5. (gdb) n: 单条语句执行,next命令简写 6. (gdb) p i: 打印变量i的值,print命令简写 7. (gdb)bt: 查看函数堆栈

2015-10-17 11:02:35 1800

原创 Linux用法总结

添加环境变量 export PATH=$PATH:/opt/au1200_rm/build_tools/bin查看PATH变量内容echo $PATH设置文件可执行权限chmod +x +文件路径新建文件夹mkdir 文件夹名查看ubuntu 版本cat /etc/issue查看系统位数/getconf LONG_BIT删除文件/文件夹删除文件:rm -f 文件名删除文件

2015-10-14 14:39:29 333

原创 C++ 分糖果问题-求一组数的最大公倍数

给各个部门分糖果,满足以下要求: 1. 各个部门分的糖果数一样 2. 各个部门分得的糖果能平均分配 3. 公司总共15个部门 4. 糖果数最少输入:需要分配的部门个数和各个部门的人数输出:每个部门的糖果数目示例:输入:部门数目:5 各个部门人数:4 2 3 4 5输出:60方法:该题目间接求各个部门人数的最小公倍数。递归计算,求n个数的最小公倍数,相当于求第一个数和剩下n-1个数

2015-09-17 08:32:12 1342

原创 返回类型和return语句

return语句中之当前正在执行的函数,并将控制权返回到调用该函数的地方无返回值函数没有返回值的return语句只能用在返回类型是void的函数中,返回void的函数不要求非得有return语句,因为这类函数最后一句后面会吟诗执行returnvoid函数可以使用return语句提前退出函数有返回值函数return语句返回值类型必须与函数哦返回类型相同,或者可以隐式转换成函数返回值类型在含

2015-09-14 15:08:14 6046

原创 顺序链表类模板的实现

编写的顺序链表类模板存放元素Node,类模板定义了一下成员:成员变量: 表示链表表头的指针:Node *head链表长度:length链表大小:size_成员函数 默认构造函数接受迭代器的构造函数在链表尾部添加成员删除链表第n个成员,返回删除成员的值查找指定值元素,找到则返回符合要求的第一个元素的指针,否则返回NULL返回表头模板代码如下:#ifndef LINERLIST

2015-09-12 10:06:12 538

原创 C风格字符串

字符串字面值是一种通用的结构实例,这种结构即是由c集成而来的c风格字符串c风格字符串不是一种类型,而是为了表达和使用字符串而形成的一种约定俗成的写法存放在字符数组中,并且以空字符结束(’\0’)c标准库string函数定义在cstring头文件中strcat(p1,p2)将p2附加到p1之后,返回p1strcpy(p1,p2)将p2拷贝给p1,返回p1strlen(p)返回p的长度,不

2015-09-11 19:54:51 323

原创 动态数组new、allocate

new和delete运算符一次分配/释放一个对象,但某些应用需要一次为很多对象分配内存的功能C++提供了两种一次分配一个对象数组的方法new表达式语法,可以分配并初始化一个对象数组allocate类可以将分配和初始化分离涉及到分配动态数组的类必须定义自己版本的操作,在拷贝、复制以及销毁对象时管理所关联的内存new和数组要在类型名后跟一对方括号,其中指明要分配的对象的数目下例中new分配

2015-09-10 17:04:44 4453

原创 共享型智能指针的实现share_pointer

智能指针是一个类,它产生的是一个类对象,而不是一个原生的指针对象,但是为了减少类对象与针对对象使用的差异性,所以share_ptr类故意重载了两种常见的指针操作符: *和->。从而share_ptr与普通指针使用方式一样。简言之,就是share_ptr生成的一个包含类型指针容器对象,它封装了指针对象,对指针对象负全责,包括生成、释放等。 智能指针(smart pointer)的一种通用实现

2015-09-08 19:43:06 3466

原创 C++一些语法总结

构造函数初始化列表编写类的时候一些成员必须在构造函数初始化列表中进行初始化,const和引用类型的对象,不能对他们赋值,因此需要在初始化列表对他们赋初始值: 没有默认构造函数的类类型成员const或引用类型成员在初始化列表中,成员被初始化的次序是定义成员的次序右值引用左值引用是指表达式结束后依然存在的持久现象右值引用是表达式结束时,就不再存在的临时对象区分右值与左值的方法是看能不能对

2015-09-08 18:55:41 479

原创 C++primer 阅读笔记-模板与泛型编程(效率与灵活性+)

shared_ptr给予我们共享指针所有权的能力容易重载shared_ptr的删除器,只要在创建时或者reset指针时传递给它一个可调用对象即可unique_ptr独占指针删除器是unique_ptr对象的类型的一部分,用户定义unique_ptr时以显式模板实参的形式提供删除器的类型在运行时绑定删除器shared_ptr必须能直接访问删除器,删除器保存为一个指针或者一个封装了指针的类s

2015-09-08 18:53:41 555

原创 可调用对象与function

function的头文件为utility,其用法为:`std::function<retype (p1,p2)> f;`f为返回值为retype,形参为p1,p2的可调用对象,其可为函数,类的调用函数,lambda表达式delete t时,指针t内存的值是一个地址,delete后该地址对应的内容就被释放了,但是t还存在,其值还是那个地址 class DebugDelete{public:

2015-09-08 18:26:44 320

原创 C++类成员变量初始化位置

static: static表示的是静态的。类的静态成员函数、静态成员变量是和类相关的,而不是和类的具体对象相关的。即使没有具体对象,也能调用类的静态成员函数和成员变量。一般类的静态函数几乎就是一个全局函数,只不过它的作用域限于包含它的文件中。 在C++中,static静态成员变量不能在类的内部初始化。在类的内部只是声明,定义必须在类定义体的外部,通常在类的实现文件中初始

2015-09-08 11:29:16 2014

原创 C++primer阅读笔记-模板与泛型编程(模板特例化)

默写情况下,通用定义可能编译失败或做得不对当我们不能使用模板版本时,我们可以定义类或函数模板的一个特例化考虑下边代码//可以比较任意两个类型,实参为一个指向T类型的const版本的引用template<typename T>int compare(const T&,const T&);template<size_t N,size_t M>//处理字符窜字面常量int com[are(c

2015-09-07 15:38:08 874

原创 C++primer阅读笔记-模板与泛型编程(可变参数模板)

一个可变参数模板就是一个接受可变数目参数的模板函数或模板类存在两种参数包 模板参数包函数参数包用省略号指出一个模板参数胡函数参数表示一个包class…或者typename…指出接下来的参数表示零个或多个类型的列表一个类型名后跟一个省略号表示零个或多个给定类型的非(模板)类型参数列表在函数参数列表中,如果一个参数的类型那个是一个模板参数包,那么此参数是一个函数参数包template<t

2015-09-07 14:37:15 494

原创 C++primer阅读笔记-模板与泛型编程(重载与模板)

函数模板可以被另一个模板或者一个非模板函数重载,名字相同的函数必须具有不同数量或类型的参数。设计到函数模板,函数匹配规则满足: 对于一个调用,其候选函数包括所有模板实参推断成功的函数模板实例候选函数总是可行的,因为模板实参推断会排出任何不可行的模板可行函数按照类型转换来排序如果恰有一个函数提供比其他函数都更好的匹配,则选择此函数,如果有多个函数提供同样好的匹配,则:如果同样好的函数中只有

2015-09-07 11:10:09 630

原创 C++primer阅读笔记-模板与泛型编程(模板实参推断)

类型转换与模板类型参数编译器利用调用中的函数实参来确定其模板参数如果一个函数uxingcan的类型使用了模板类型参数,则采用特殊初始化规则编译器通常不是对实参进行类型转换,而是生成一个新的模板实例顶层const无论是在形参还是实参都会被葫芦其他类型转换中,能在调用中应用与函数模板的包括 const转换:可以将一个非const的引用或指针传递给一个const的引用或指针形参数组或函数指针

2015-09-06 11:11:33 610

原创 C++primer阅读笔记-重载运算与类型转换(可调用对象与function)

C++中的可调用对象: 函数函数指针lambda表达式bind创建的对象重载了函数调用运算符的类每个可调用对象都有自己的类型: lambda有唯一的类类型(未命名的)函数和函数指针的类型以及传递给调用的实参类型每个可调用对象都有自己的调用形式 调用形式指明调用返回类型以及传递给调用的实参类型两个不同的类型的可调用对象的调用形式可能相同一种调用形式对应一个函数类型标准库fun

2015-09-05 12:45:58 258

原创 C++primer 阅读笔记-模板与泛型编程(控制实例化)

模板在使用时才会被实例化,相同的实例可能出现在对各对象文件中当多个独立编译的源文件使用了相同的模板,并提供了相同的参数。那么每个文件都会有该模板的一个实例,在大系统中,这会增加额外开销通过显示实例化,避免这种开销//实例化声明与定义extern template class Blob<string> //声明template int compare(const int&, const in

2015-09-03 10:30:17 426

原创 C++primer 阅读笔记-模板与泛型编程(成员模板)

成员模板一个类(类模板或者普通类)可以包含本身是模板的成员函数成员模板不能是虚函数普通类的成员模板下例为一个类似于unique_ptr的默认删除器的类希望删除器适用于任何类型,所以将调用运算符定义为一个模板成员模板也是也模板参数列表开始class DebugDelete{ public: DebugDelete(std::ostream &s = std::er

2015-09-02 18:58:51 437

原创 C++primer 阅读笔记-模板与泛型编程(模板参数)

模板参数模板参数与作用域模板参数会隐藏外层作用域中声明的相同名字在模板内不能重用模板参数名一个模板参数名在一个特定的模板参数列表中只能出现一次模板声明模板声明必须包括模板参数列表模板声明中模板参数的名字不必与定义中的相同使用类的类型成员C++假定通过作用域运算符访问的名字不是类型关键字typename显示告诉编译器该名字是类型templateT>

2015-09-02 16:55:21 532

原创 C++primer 阅读笔记-模板与泛型编程(类模板)

类模板类模板是用来生成类的蓝图与函数模板不同的是,编译器能为类模板推断模板参数类型,所以在使用类模板时,需要在模板名后的尖括号里提供额外的信息,用来补充类模板的实参类似函数模板,类模板以关键字template开始,后跟模板参数列表,在类模板或者其成员的定义中,用模板参数当作替身template<typename T> class Blob{public: typedef T val

2015-09-02 16:35:05 530

原创 C++primer 阅读笔记-模板与泛型编程(函数模板)

面向对象编程(OOP)和泛型编程都能处理在编写程序时不知道类型的情况,但是OOP能处理类型在程序运行之前都不知道的情况,而泛型编程在编译时就能获知类型了。 一个模板就是一个创建类或者函数的蓝图或者说公式,但使用一个泛型类型或者泛型函数时,我们将蓝图转换为特定的类或者函数,这种转换发生在编译的时候。定义模板函数模板一个函数模板就是一个公式,用来生成针对特定类型的函数版本。模板以关键字templ

2015-09-01 10:38:16 470

原创 求最大子序列和的四种方法

求一个给定序列的连续子序列中和最大的那个子序列的和,下边方法只求和,没有找出最大子序列。用到的头文件和宏定义如下#include "stdafx.h"#include<vector>#include <string>#include <fstream>#include <random>#include <time.h>#include <iostream>typedef long in

2015-08-30 15:48:30 2713 1

原创 对一个复原魔方进行操作,记录操作后魔方状态

下面为为阿里巴巴的一道笔试题一个三阶魔方由六个面组成,颜色分别是白色(W),对面为黄色(Y),红色(R),对面为橙色(O),绿色(G)对面为蓝色(B)。如果手持魔方,白色向上,红色朝向自己,则绿色在左手侧。 该程序对一个处于还原状态的魔方进行操作,打印操作后的魔方状态。操着指令为单个指令组成的字符串。单个操作指令包括:1. U:白色棉顺时针旋转90度

2015-08-30 15:03:12 917

原创 vim编辑器简单使用(4)

vim功能多文件编辑使用vim编辑多个文件编辑多个文件有两种形式,一种是在进入vim前使用的参数就是多个文件。另一种就是进入vim后再编辑其他的文件。同时创建两个新文件并编辑 vim 1.txt 2.txt 命令行模式下输入:n编辑2.txt文件,可以加!即:n!强制切换,之前一个文件的输入没有保存,仅仅切换到另一个文件 命令行模式下输入:N编辑1.txt文件,可以加!即:N!强制切换,之前文

2015-08-22 17:08:05 394

原创 vim编辑器简单使用(3)

查找与替换换和撤销(Undo)命令替换和Undo命令都是针对普通模式下的操作快速缩进使用命令进行快速调整缩进操作shiftwidth命令shiftwidth命令是指上一节>>命令产生的缩进(可以简写成sw) 普通模式下输入:进入命令行模式下对shiftwidth值进行设置可以控制缩进和回退的字符数。获取目前的设定值 :set shiftwidth? 设置缩进为10个字符 set s

2015-08-22 17:06:00 347

原创 vim编辑器简单使用(2)

vim文档编辑vim重复命令重复执行上次命令在普通模式下.(小数点)表示重复上一次的命令操作,普通模式下输入x,删除第一个字符,输入.(小数点)会再次删除一个字符,除此之外也可以重复dd的删除操作。执行指定次数相同的命令进入普通模式输入N<command>,N表示重复后面的次数,输入10x,删除10个连续字符;输入3dd,将会删除3行文本。 使用dw或者daw(delete a word)删

2015-08-22 17:03:22 338

原创 vim编辑器简单使用(1)

vim模式 刚刚做完实验楼vim编辑器的实验,做了下总结。vim模式介绍Vim具有6种基本模式和5种派生模式。普通模式(Normal mode) 在普通模式中,用的编辑器命令,比如移动光标,删除文本等等。这也是Vim启动后的默认模式。插入模式(Insert mode) 在这个模式中,大多数按键都会向文本缓冲中插入文本。大多数新用户希望文本编辑器编辑过程中一直保持这个模式。在插入模式中,可

2015-08-22 17:01:01 396

原创 Linux命令(7)

命令执行顺序控制与管道顺序执行多条命令简单的顺序执行你可以使用;来完成.sudo apt-get update;sudo apt-get install some-tool;some-tool有选择的执行命令我们需要能够有选择性的来执行命令,比如上一条命令执行成功才继续下一条,或者不成功又该做出其它什么处理,我们使用which来查找是否安装某个命令,如果找到就执行该命令,否则什么也不做. wh

2015-08-21 19:02:46 429

原创 Linux命令(6)

正则表达式基础 sed中关于pattern space和hold space的小实例一则 http://www.cnblogs.com/aidysun/archive/2013/02/21/2921293.html正则表达式正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。 基本语法一个正则

2015-08-21 18:53:18 415

原创 Linux命令(5)

数据流重定向参考文章 更多关于shell重定向内容可以参考:有关重定向你不知道的的事 https://www.ustack.com/blog/%E6%9C%89%E5%85%B3-shell-%E9%87%8D%E5%AE%9A%E5%90%91%E9%82%A3%E4%BA%9B%E4%BD%A0%E4%B8%8D%E7%9F%A5%E9%81%93%E7%9A%84%E6%95%85%

2015-08-21 18:33:15 638

原创 Linux命令(4)

文件系统操作与磁盘管理"rootfs" : (Root File System)它是 Ramfs(Ramfs 是一个非常简单的 Linux 文件系统用于实现磁盘缓存机制作为动态可调整大小的基于 ram 的文件系统)或者 tmpfs 的一个特殊实例,它作为系统启动时内核载入内存之后,在挂载真正的的磁盘之前的一个临时文件系统。通常的主机会在系统启动后用磁盘上的文件系统替换.查看磁盘和目录容量df (-

2015-08-21 10:50:49 408

原创 Linxu命令(3)

文件打包与解压缩常用压缩包文件格式*.zip zip程序打包压缩的文件*.rar rar程序压缩的文件*.7z 7zip程序压缩的文件*.tar tar程序打包,未压缩的文件*.gz gzip程序(GNU zip)压缩的文件*.xz xz程序压缩的文件*.bz2 bzip2程序压缩的文件*.tar.gz tar打包,gzip程序

2015-08-21 10:34:42 367

原创 Linxu命令(2)

基本概念和用户及文件权限管理基本概念Linux是一个可以实现多用户登录的操作系统;root用户是具有最高权限的用户;sudo命令可以为sudo组用户提供root权限;Linux中每个用户有一个或多个归属组,同组用户可共享资源;创建新用户时,默认情况下为用户新建一个相同名字的用户组;Linux里一切皆文件;用户及文件权限管理命令查看伪终端用户名:who am i 或者 who am l

2015-08-21 10:25:31 326

原创 Linux命令(1)

Linux简单命令总结最近看完实验楼的Linux基础入门教程,对教程中出现的命令做了一下总结。文本处理命令tr 命令tr 命令可以用来删除一段文本信息中的某些文字。或者将其进行转换。 使用方式:tr [option]…SET1 [SET2] 选项说明:-d 删除和set1匹配的字符,注意不是全词匹配也不是按字符顺序匹配-s 去除set1指定的在输入文本中连续并重复的字符

2015-08-21 09:47:20 350

docker镜像 boot2docker.iso 的17.11.0版本

dockeran安装镜像,boot2docker.iso这个是17.11.0版本.

2017-12-01

室内可见光通信协议

Short-Range Wireless Optical Communication Using Visible Light室内可见光通信协议,IEEE802.15.7,2011年。

2015-08-17

LTE上行资源分配

Energy efficient uplink resource allocation in LTE networks with M2M H2H Co-existence under statistical QoS guarantees 2014 伦敦国王学院,H2H和M2M混合业务下LTE上行资源分配,以能量有效和保证统计时延为目标。

2015-08-17

统计学习方法

《统计学习方法》李航著,清华大学出版社,总共12章

2015-04-28

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

TA关注的人

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