自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(116)
  • 资源 (7)
  • 收藏
  • 关注

原创 线程管理以及线程间数据共享

第二章 线程管理1.1  线程的启动:Ø 通过函数对象构造thread对象,如下:class background_task{public:  void operator()()const  {    do_something();   do_something_else();  }}; background_task f;std::thre

2017-12-24 15:21:04 431

转载 三分法 three-way partitioning

参考:http://blog.jobbole.com/105219/先考虑这样一个问题,给定红、白、蓝三种颜色的小球若干个,将其排成一列,使相同颜色的小球相邻,三种颜色先后顺序为红,白,蓝。这就是经典的 Dutch national flag problem。我们可以针对红,蓝,白三种颜色的球分别计数,然后根据计数结果来重新放球。不过如果我们将问题进一步抽象,也就是说将一个数组

2017-11-01 22:43:55 5300

原创 ubuntu 14.04 Clang编译安装,libclang解析c++代码

注意事项:1. 内存8G以上,我当时4G内存,编译debug版就出现了内存耗尽的情况;2.最好不要编译debug版本,我编译到83%左右时已经耗尽30多G磁盘空间,并且会产生很大的编译日志文件(提示12G左右),同样提示内存不足针对内存耗尽的问题,当时也在网上找了很久,来自于stackoverflow(https://stackoverflow.com/questions/25

2017-11-01 21:35:18 4199

转载 二分查找,你真的懂吗

转载至:http://duanple.blog.163.com/blog/static/709717672009049528185/作者:phylips@bmy最近在练习动态规划问题(DP),其中“最长递增子序列”问题中要用到二分查找,突然发现二分查找并非我们想象的那么简单。例如如何确定停止条件,不同的问题如何增加下边界和减少小边界,如何确保问题规模变小而不进入死循环?下面这篇文章很好的解

2017-09-24 11:26:38 1220 1

转载 最长递增子序列

转载至:http://blog.csdn.net/u013074465/article/details/45442067最长递增子序列http://blog.csdn.net/lisonglisonglisong/article/details/45241965最长递增子序列(Longest Increasing Subsequence)是指找到一个给定序列的最

2017-09-19 21:43:41 495

转载 C++'s most vexing parse

转载至:http://www.zkt.name/c-s-most-vexing-parse/最近同事在使用C++的时候遇到一个诡异的问题,初始化一个对象的时候构造函数没有被调用。类似的代码如下:#include class A { public: A(const std::string& name){ std::cout std::endl;

2017-08-27 11:20:33 375

原创 深拷贝和浅拷贝

c++编译器默认情况下会生成拷贝构造函数和赋值操作符用于新对象的构造和赋值。拷贝构造函数和赋值操作符分为两种:位拷贝(bitwise copy)和成员拷贝(member copy)。当c++类不展现bitwise copy semantic时不会按照默认的Bitwise copy,以下四种情况不展现bitwise copy semantic:1)如果一个类没有拷贝构造函数,但是含有一个类类型的

2017-08-19 22:17:45 271

转载 c++类型转换

参考:http://www.cnblogs.com/goodhacker/archive/2011/07/20/2111996.htmlhttp://www.cnblogs.com/ider/archive/2011/08/01/cpp_cast_operator_part5.htmlc++中有四种运算符用于类型转换:const_cast,字面上理解就是去const属性。sta

2017-08-13 11:01:26 391

转载 c++对象内存布局

转载:http://blog.csdn.net/haoel/article/details/3081328/转载:http://www.cnblogs.com/jerry19880126/p/3616999.html第一篇文章主要是介绍含虚函数的普通继承,文字标红处为错误,应该为:“[4] CChild:: h_child()”第二篇主要是讲了虚继承的内存布局,还介绍了如何使用vs查看

2017-08-07 22:31:56 279

原创 std::async在gcc和vc不同编译器下的不同表现(可能会阻塞)

最近由于项目的需要,在学习c++11中的std::async,想在项目中直接利用其异步操作的特性,而不是thread。但是该方法却在不同的编译器下有着不同的表现。实验环境一:操作系统:ubuntu 12.0.4 32位编译器:gcc 5.4.1源码:#include #include #include #include #include using namespace

2017-07-23 18:35:52 1849 1

原创 可变参数实现log打印

实现步骤如下:     1. 函数原型中使用省略号;     2. 函数定义中创建一个va_list变量;      3. 初始化va_list变量;      4. 访问参数列表;      5. 完成清理工作;   上述步骤的实现需要使用到四个宏:va_list、va_start(va_list, arg)、va_arg(va_list, type)、va_end(va

2017-07-22 17:27:02 2375

原创 创建型:原型模式(Prototype)

我们都知道,创建型模式一般是用来创建一个新的对象,然后我们使用这个对象完成一些对象的操作,我们通过原型模式可以快速的创建一个对象而不需要提供专门的new()操作就可以快速完成对象的创建,这无疑是一种非常有效的方式,快速的创建一个新的对象。原型模式的主要思想是基于现有的对象克隆一个新的对象出来,一般是有对象的内部提供克隆的方法,通过该方法返回一个对象的副本,这种创建对象的方式,相比我们之前说的几

2017-07-15 18:17:55 346

原创 左值引用(&)以及右值引用(&&)(原创+转载)

话题一:到底引用是什么?底层实现原理是什么?带着这几个问题我们分析一下下面的代码:int _tmain(int argc, _TCHAR* argv[]){ int x = 1; int y = 2; int &b = x;#ifdef _DEBUG printf("&x=%x,&y=%x,&b=%x,b=%x\n", &x, &y, &y-3, *(&y - 3));#else

2017-07-15 18:07:56 482

原创 创建型:建造者模式(Builder)

建造者模式实际上是常用的设计模式。顾名思义,builder的意思是建造者或者建筑工人,谈到建造自然会想到楼房。楼房是千差万别的,楼房的外形、层数、内部房间的数量、房间的装饰等等都不一样,但是对于建造者来说,抽象出来的建筑流程是确定的,往往建筑一座楼房包括下面的步骤:(1)打桩,建立基础(2)建立框架等。建造者模式的本质和建造楼房是一致的:即流程不变,但每个流程实现的具体细节则是经常变化的。建造者模

2017-07-02 16:36:06 365

原创 androidStudio中无法获取versionName

获取到的 VersionName 和 VersionCode 一直是1.0 和 1。但是在 AndroidManifest.xml中已经修改:android:versionCode="2"android:versionName="1.0.0"其实在AndroidStudio中版本信息保存在build.gradle中:defaultConfig { applicationI

2017-07-01 22:46:28 1103

原创 创建型:单例模式(singleton)

单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。唯一的实例是类的一个普通对象,但设计这个类时,让它只能创建一个实例并提供对此实例的全局访问。唯一实例类Singleton在静态成员函数中隐藏创建实例的操作。习惯上把这个成员函数叫做Instance(),它的返回值是唯一实例的指针。如下实现中,CS

2017-06-25 14:16:31 245

原创 effective c++之模板与泛型编程

条款41: 了解隐式接口和编译期多态本条款主要是两个概念,即什么是隐式接口,什么是编译期多态。面向对象编程世界总是以显式接口(explicit interfaces)和运行期多态(runtimepolymorphism)解决问题。例如:class Widget {  public:   Widget();   virtual ~Widget();   virtual std::si

2017-06-11 16:02:36 384

转载 Hamming Weight的算法分析

转载至:http://www.cnblogs.com/jawiezhu/p/4395063.html参考:wikipediaHamming Weight的算法分析最容易想到的算法是除余法,继而考虑到除法的代价较高,而且除数是2,会想到使用向右移位来代替除法,并使用&0x1操作来取末位的值,这样提高了算法的效率。然而,这样仍然进行了63次&操作、63次移位操作和63次

2017-06-05 22:34:42 548

转载 C++类型转换总结

参考:http://www.cnblogs.com/goodhacker/archive/2011/07/20/2111996.htmlC风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)a。C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。const_cast,字面上理解就是去const属性。sta

2017-05-21 12:28:30 207

转载 C++头文件的若干说明和const对象定义

转载至:http://blog.csdn.net/yipiantiandi/article/details/5822564在使用C++进行程序开发的时候,有个常识我们很熟悉,就是把类的定义写在.h文件中,把类的具体实现写在.cpp文件中。这毫无疑问是对的。但我们很少去思考为什么要这样做,本文结合自己的学习体会,对头文件及const对象的定义进行一些说明。 1。为什么要使用头文件使用

2017-05-17 17:57:30 381

原创 boost之并发编程

1.      Thread创建方法:(注意bind和thread以函数作为参数时,如果函数是静态成员函数或者普通函数,可以传函数名func或函数名取地址&func,但是如果是非静态成员函数,必须传函数名取地址)1)     利用普通函数创建线程,例如:boost::thread thrd(&func,2);或boost::threadthrd(func,2);2)     利用静态成员函

2017-05-03 22:31:58 454

转载 c++之函数对象

转载至:http://blog.csdn.net/wuzhekai1985 http://blog.csdn.net/wuzhekai1985/article/details/6658940可以为类类型的对象重载函数调用操作符,定义了调用操作符的类,其对象称之为函数对象(function object),即它们的行为类似函数的对象。STL是C++标准库的重要组成部分之一,它不仅是一

2017-04-27 14:39:54 351

原创 Minimum Moves to Equal Array Elements(最少移动步长使数组中元素相等)

今天在leetcode上遇到一个问题,就是如何在最小移动步数下使数组中元素相等,每次仅能移动n-1个元素,而且每次只能加1?其实这就是一个简单的数学问题,我们可以假设在m次移动后,所有元素达到相等,且相等值为val,那么,我们可以建立等式如下:sum + m*(n-1) = val*n;(其中,sum是原始数组元素之和,n为元素个数),实际上,我们还有一个等式,那就是m步后val的值:

2017-04-22 10:07:24 536

转载 二叉树的遍历

参考至:http://www.cnblogs.com/dolphin0520/archive/2011/08/25/2153720.html二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法

2017-04-17 22:13:44 321

原创 Digital Root(数根推导)

今天在leetcode上面碰到了在O(1)时间解决数根问题,后来发现运用数学公式确实可以在常数时间内解决。For base b (decimal case b = 10), the digit root of an integer is:dr(n) = 0 if n == 0dr(n) = (b-1) if n != 0 and n % (b-1) == 0dr(n) = n 

2017-04-10 21:48:46 1342

转载 (位运算使用技巧)A summary: how to use bit manipulation to solve problems easily and efficiently

参考至:https://discuss.leetcode.com/topic/50315/a-summary-how-to-use-bit-manipulation-to-solve-problems-easily-and-efficientlyWIKIBit manipulation is the act of algorithmically manipulating bits

2017-04-09 12:00:52 418

转载 C++ - 算法(algorithm) 的 谓词(predicate) 详解

转载至:http://blog.csdn.net/caroline_wendy/article/details/15378055算法谓词, 即标准库算法传递的参数, 可以指定算法的操作, 如std::sort, 默认是从小到大, 通过谓词可以修改从大到小.本文包含基本的5种谓词模式: 函数,函数指针,lambda表达式,函数对象,库定义的函数对象. 1. 函数(fu

2017-04-08 11:24:52 2766 1

原创 Android填坑记之Fragment中onAttach

今天在写ListFragment的demo时,onAttach(Context context)没有被系统回调,后来找到了答案:It's not called because this method has been added in API 23. If you run your application on a device with API 23 (marshmallow) then o

2017-04-04 16:54:57 2943

转载 博弈问题简介

参考:http://blog.csdn.net/pipisorry/article/details/39249337博弈问题简介所讨论的博弈问题满足以下条件:玩家只有两个人,轮流做出决策游戏的状态集有限,保证游戏在有限步后结束,这样必然会产生不能操作者,其输对任何一种局面,胜负只决定于局面本身,而与轮到哪位选手无关一般称满足以上条件的游戏称为ICG,比如

2017-04-04 12:24:05 1466

转载 c++11新特性中unordered_map与传统map比较

unordered_map是很早就知道的概念,但却一直没有认真去理解,单单以为它是Boost库里对map的实现,今天在做Leetcode的题目的时候,发现了使用它的优越性,索性翻开书,并查一查资料,把它大致搞个清楚,省的以后还要再查再找,浪费时间。unordered_map是C++Boost库中的内容,这里的unordered翻译成“无序”。但它并不是完全的“无序”的概念,而是散列

2017-04-02 22:15:30 1982

原创 Android中获取ActionBar为null的问题

由于ActionBar是在android3.0以后引入的,所以必然出现兼容的问题。有时候我们在获取ActionCar的时候出现空指针问题。如果工程是要兼容3.0一下的版本(Activity 继承AppCompatActivity),那么要import以下:import android.support.v7.app.ActionBar;import android.support.v7

2017-03-19 12:59:44 1677

原创 Android之实现TextView控件圆角以及Button点击、焦点效果

默认情况下,TextView是不带边框的,如果想要为TextView添加边框,只能考虑为TextView设置一个背景Drawable。在Drawable文件夹下新建一个layout类型的xml文件,然后将Root tag改成shape,这样xml文件也可以当Drawable使用。bg_border.xml    android:layout_width="match_parent"

2017-03-07 21:54:16 1797 1

原创 AndroidStudio工程导入错误

在实际开发中,我们经常需要从别的地方,如GitHub等导入项目,但是经常出现工程项目配置不匹配,导致编译错误等问题。遇到问题如下:Gradle sync failed: failed to find Build Tools revision 23.3.0解决方法:其实按照AS的提示完全就可以解决问题,AS提示:intall sdk tool xx.xx.xx。在AS菜单栏找到S

2017-03-05 12:25:02 446

原创 Android中dp,sp以及px之间的关系

px:即像素,1px代表屏幕上一个物理的像素点;px单位不被建议使用,因为同样100px的图片,在不同手机上显示的实际大小可能不同。dp:这个是最常用但也最难理解的尺寸单位。它与“像素密度”密切相关,所以首先我们解释一下什么是像素密度。假设有一部手机,屏幕的物理尺寸为1.5英寸*2英寸,屏幕分辨率为240x320,则我们可以计算出在这部手机的屏幕上,每英寸包含的像素点的数量为2

2017-03-04 18:38:14 584

原创 Qt中local and expressions无法查看当前栈变量

前几天在开发过程中发现一个问题,那就是Qt中local and expressions无法查看当前栈变量。在升级到gcc 4.8.1版本之前,debug时在watch window是可以看到变量值得。很有可能就是升级过后,gcc版本与gdb版本不匹配造成的。ubuntu12.04自带的gdb是7.4,升级gdb可以解决问题,当gcc升级到4.8.1时,匹配的gdb需要升级到7.6.1,否则会出现符

2017-03-01 20:47:59 1420

转载 使用Android Studio进行单元测试

参考:http://www.cnblogs.com/zoro-robin/p/5732990.htmlhttp://www.jianshu.com/p/03118c11c199Android Studio默认支持Android单元测试,不需要像网上说的配置mainifest.xml或build.gradle。创建单元测试文件夹可以把单元测试文件夹放到

2017-02-26 17:15:14 1303

原创 Android基于位置的服务&传感器&高级技巧

1.      LocationManager用于位置服务管理,Android中一般有三种位置提供器可供选择,GPS_PROVIDER、NETWORK_PROVIDER和PASSIVE_PROVIDER。其中前两种使用的比较多,分别表示使用GPS定位和使用网络定位。这两种定位方式各有特点,GPS定位的精准度比较高,但是非常耗电,而网络定位的精准度稍差,但耗电量比较少。2.      通过上面的

2017-02-20 22:35:50 306

原创 Android之网络技术

1.      WebView可以进行简单的网页呈现,注意添加权限:2.      在Android上发送HTTP请求的方式一般有两种,HttpURLConnection和HttpClient:1)      HttpURLConnection只需要一个URL对象,注意连接操作在主线程中的子线程中开启,因为不能在子线程中对UI进行操作,所以采用android中的异步消息机制,利用Handl

2017-02-12 22:06:35 286

原创 effective c++之继承与面向对象设计

条款32:确定你的public继承塑模出is-a关系请记住:1.   “public继承”意味着is-a。适用于baseclasses身上的每一件事情一定也适用于derived classes身上,因为每一个derived class对象也都是一个base class对象。条款33:避免遮掩继承而来的名称在C++的继承体系中,不管是变量名还是函数名称的查找按照一定的规则

2017-01-22 22:41:06 338

转载 C++之TR1::function

转载至:http://blog.csdn.net/u013696062/article/details/40891973Tr1::function的介绍它是一个类模板,类的成员变量是一个函数指针。可以把它看作一个智能函数指针(和shared_ptr智能指针对比着理解)。 一. 头文件#include 二. 使用[cpp] view plain c

2017-01-20 22:10:33 407

matlab基础知识3

介绍了matlab的基础知识,对于零基础的初学者来说,是本很好的书。

2013-05-01

matlab基础知识

介绍了matlab的基础知识,对于零基础的初学者来说,是本很好的书。

2013-05-01

Matlab扩展编程

主要讲述了利用matlab进行扩展编程,以及进行语音识别

2013-05-01

MATLAB环境下的语音识别系统

介绍了MATLAB 环境下的语音识别系统, 阐述了具体的实现过程。采用离散隐马尔科夫模型, 为提高识别 率采用男女2 套参数, 对离散隐马尔科夫模型在实际语音识别系统中遇到的问题进行分析, 并给出相应的解决办法。

2013-04-30

MATLAB环境下的基于HMM模型的语音识别系统

介绍了MATLAB 环境下的语音识别系统, 阐述了具体的实现过程。采用离散隐马尔科夫模型, 为提高识别 率采用男女2 套参数, 对离散隐马尔科夫模型在实际语音识别系统中遇到的问题进行分析, 并给出相应的解决办法。

2013-04-30

通信原理MATLAB仿真

学会MATLAB软件的最基本运用。MATLAB是一种很实用的数学软件,它易学易用。MATLAB对于许多的通信仿真类问题来说是很合适的。 2、了解计算机仿真的基本原理及方法,知道怎样通过仿真的方法去研究通信问题。 3、加深对通信原理课有关内容的理解。

2013-04-28

语音信号处理

综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应结论,再利用 MATLAB 作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。

2013-04-27

空空如也

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

TA关注的人

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