- 博客(46)
- 收藏
- 关注
原创 YUV420SP/YUV420P
YUV420SP:sp(semi-Planar二维平面)指的是YUV不是3个平面而是分成2个平面。Y数据一个平面,UV数据合用一个平面。UV平面的数据格式是UVUVUV...YUV420P:420P是先把U存放完后,再存放V,也就是说UV他们是连续的。...
2018-10-29 16:46:31
9481
转载 Linux 的文件权限和目录配置
https://www.linuxidc.com/Linux/2018-10/154812.htm1、Linux文件属性用root用户登录Linux后,执行 ls -al 命令查看文件。显示如下:文件属性示意图如下:第一列代表这个文件的类型和权限第一个字符代表这个文件是:目录、文件或链接文件等。若是【d】则是目录; 若是【-】则是文件; 若是【l】则表示为连...
2018-10-21 11:34:07
256
转载 时间复杂度和空间复杂度
https://blog.csdn.net/zxm490484080/article/details/72210501http://blog.csdn.net/daijin888888/article/details/66970902算法复杂度分为时间复杂度和空间复杂度。其作用: 时间复杂度是指执行算法所需要的计算工作量; 而空间复杂度是指执行这个算法所需要的内存空间。 (算法的...
2018-09-18 20:39:09
201
原创 Two Sum
class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> res; int i , j; for(i = 0; i < nums.size(); i ++){ ...
2018-09-18 20:38:00
697
转载 c++中template的用法
https://blog.csdn.net/lezardfu/article/details/56852043#%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8Template 基础篇-函数模板 为什么要有泛型编程 函数模板定义 普通函数模板 成员函数模板 为什么成员函数模板不能是虚函数virtual 实参推断 如何使用 ...
2018-09-18 20:03:28
9207
2
转载 c++ vector用法详解
https://zh.cppreference.com/w/cpp/container/vector定义于头文件<vector>template< class T, class Allocator = std::allocator<T>>class vector;std::vector是封装动态数组的顺序容器。 ve...
2018-08-23 09:56:06
402
转载 多线程之生产者和消费者模型
这么经典的问题,要多看几次,多思考。https://blog.csdn.net/chenxun_2010/article/details/49848865(1)单消费者单生产者模式#include <iostream>#include <mutex>#include <thread>#include <condition_variabl...
2018-08-03 08:55:50
272
翻译 多线程中thread::join()和thread::detach()的区别
你应该使用join还是detached?一般都使用join 除非你需要更灵活并且想要独立地提供一种同步机制来等待线程完成,在这种情况下你应该使用detach C++中的thread对象是指执行的线程(thread of execution),这是系统性或平台性的概念。 当执行thread::join()时,子线程就会阻塞主线程,当thread::join()结...
2018-08-02 09:39:33
3033
原创 C++中Lambda函数(匿名函数)
参考:https://www.cnblogs.com/pzhfei/archive/2013/01/14/lambda_expression.html首先,要搞清楚匿名函数是什么?为什么C++11为什么要弄出来匿名函数这个机制?匿名函数就是没有名字的函数。有一些函数只是临时用一下,而且业务逻辑也比较的简单,相当于是临时工,就没必要给它定义成一个正常函数(包含有函数名,很正式的那种)。使用临...
2018-07-31 09:54:20
8898
转载 线程池的实现
转载自https://blog.csdn.net/zdarks/article/details/46994607,还能学习很多新的语法咳咳。c++11 加入了线程库,从此告别了标准库不支持并发的历史。然而 c++ 对于多线程的支持还是比较低级,稍微高级一点的用法都需要自己去实现,譬如线程池、信号量等。线程池(thread pool)这个东西,在面试上多次被问到,一般的回答都是:“管理一个任务队...
2018-07-23 18:05:03
208
原创 C++11多线程之std::thread
先看thread的定义:类 std::thread:class thread { public: // 类型: class id;//线程的id typedef /*implementation-defined*/ native_handle_type; // 构造/复制/销毁: thread() noexcept;//构造函数 te...
2018-07-23 17:06:32
273
原创 C++11多线程概论
多线程的的编译命令:g++ -std=c++11 -o condition_variable condition_variable.cpp -lpthread 要加上-lpthread lpthread这个类用到posix实现的线程了。C++11新标准中引入了四个头文件来支持多线程变成,他们分别是<atomic>,<thread>,<mutex>,&...
2018-07-10 09:01:42
387
原创 new和malloc区别和malloc详解
参考:https://www.cnblogs.com/huhuuu/archive/2013/11/19/3432371.htmlhttps://blog.csdn.net/chance_wang/article/details/1609081一、区别其实在使用的大部分场景下,两者是可以通用的,但是我们还是要知道他两的区别。1、malloc与free是c++/c语言的标准函数,new/delete...
2018-07-05 18:32:28
38127
12
原创 多线程中编译错误
今天写了一个makefile文件,没想到各种坑。先记录下来,慢慢修改1、g++: error: .o: 没有那个文件或目录g++: error: thread_pool.o: 没有那个文件或目录g++: fatal error: no input filescompilation terminated.makefile:15: recipe for target 'thread_pool.o' f...
2018-07-03 17:39:25
1446
转载 多线程系列之线程优先级和线程安全
原文:http://blog.csdn.net/luoweifu/article/details/46701167 1、线程优先级2、线程安全
2018-06-29 19:19:02
209
原创 多线程系列之基本概念
今天开始系统的学习一下多线程,参考:https://blog.csdn.net/luoweifu/article/details/46595285
2018-06-28 09:25:34
118
转载 Android 多线程之HandlerThread 完全详解
http://blog.csdn.net/javazejian/article/details/52426353 之前对线程也写过几篇文章,不过倒是没有针对android,因为java与android在线程方面大部分还是相同,不过本篇我们要介绍的是android的专属类HandlerThread,因为HandlerThread在设置思想上还是挺值得我们学习的,那么我们下面来就了解它吧,我们先来看看...
2018-06-12 19:47:23
230
原创 crash问题
java.lang.RuntimeException: Camera is being used after Camera.release() was called预览callback时候的问题,参考下面:mCamera.setPreviewCallback(null) ;mCamera.stopPreview();mPreviewRunning = false;mCamera.release()...
2018-05-23 17:35:48
696
原创 利用Git命令来打patch
打patch方法git format-patch ******(commit-id)使用patch的方法git apply 0001-*****.patch但是有时候Patch会有问题,应用上面的命令整个patch都打不上,可以使用下面命令:git apply --refect 0001-*****.patch该命令先合并没有产生冲突的文件,然后根据同目录下的*.rej来看哪里有冲突。可以使用gi...
2018-05-11 14:31:25
1780
原创 c++中类模板和函数模板介绍
参考:https://www.cnblogs.com/cynchanpin/p/7127897.html模板类是一种泛型编程。泛型编程:编写与类型无关的逻辑代码,是代码复用的一种手段。而模板是泛型编程的基础。1、函数模板格式template<typename Param1, typename Param2,...,class Paramn>返回值类型 函数名(参数列表){ ...
2018-04-28 14:54:07
243
原创 java中字符串操作
1、判断两个字符串是否相等我最近刚学java,今天编程的时候就遇到一个棘手的问题,就是关于判断两个字符串是否相等的问题。在编程中,通常比较两个字符串是否相同的表达式是“==”,但在java中不能这么写。在java中,用的是equals();例:A字符串和B和字符串比较:if(A.equals(B)){}返回true 或false.String 的equals 方法用于比较两个字符串是否相等。由于字...
2018-04-16 21:09:04
152
原创 cannot pass non-trivial object of type 'string8' to variadic function
这个错误涉及到 android底层库libutils之string8,可以参考https://blog.csdn.net/armwind/article/details/52016309解决办法是把报错的地方换成string8的string()函数如:string8 a = xxxxx;char b[4];b = a.string();...
2018-04-14 18:16:09
3905
原创 移植算法编译遇到的坑
1、mkdir函数不能用 添加头文件#include <sys/stat.h> #include <sys/types.h>2、JNI编程-- undefined reference to `__android_log_print' 的解决办法在android.mk 中添加 LOCAL_LDLIBS :=-llog 注意android.mk 里有一行include $(C...
2018-04-11 20:44:18
310
原创 android中的消息处理机制
最近在项目中需要在上层中修改一些东西,看到很多消息处理机制。故记录一下。 android中的消息处理机制主要是通过异步回调机制handler来进行的。声明一个handler,里面包含message和Looper两部分。Handler作用是发送和处理信息,当前线程需要有一个Looper对象。messageQueue是消息队列,在初始化Loop时候就要创建一个对应的MessageQueu...
2018-04-03 20:25:40
100
原创 虚函数的应用
class A { virtual f();//定义一个虚函数}class B: class A{ f();//函数的实现}class C: class A{ f();//函数的实现,和class B中的不一样}main(){//在使用的时候,可以直接定义一个基类的对象A func= f();//不论是调用B中的f()还是C中的f(),都转换到基类,这样有利于扩展,在以后可以写D,E,F...
2018-03-27 21:54:57
636
转载 android下的callback机制
按照我个人的理解,就是: 用java的回调机制来实现C语言中的函数指针的传递。 为了了解什么是回调函数,在网上查阅了如下资料,整理如下: 资料一:首先说说什么叫回调函数? 在WINDOWS中,程序员想让系统DLL调用自己编写的一个方法,于是利用DLL当中回调函数(CALLBACK)的接口来编写程序,使它调用,这个就 称为回调。在调用接口时,需要严格的按照定义的参数和方法调用,并且需要处理函数...
2018-03-26 21:37:57
6180
转载 __attribute__((unused))的含义
在分析内核时注意到有些函数会有添加__attribute__((unused)),在gcc手册中找到了有关的解释:unused:This attribute, attached to a function, means that the function is meant to be possibly unused. GCC will not produce a warning fo...
2018-03-21 16:33:21
6925
转载 指针函数和函数指针的区别
http://blog.csdn.net/u014131641/article/details/51104808http://blog.csdn.net/ameyume/article/details/8220832这两篇文章写的挺好的一直都对两个概念有所混淆--指针函数与函数指针,下面我们通过两个例子来讲解一下-------------------------------------------...
2018-03-16 14:56:59
336
转载 const详解2
转载http://blog.csdn.net/xingjiarong/article/details/47282255关键字const用来定义常量,如果一个变量被const修饰,那么它的值就不能再被改变,我想一定有人有这样的疑问,C语言中不是有#define吗,干嘛还要用const呢,我想事物的存在一定有它自己的道理,所以说const的存在一定有它的合理性,与预编译指令相比,const修饰符有以下...
2018-03-16 09:51:20
156
原创 const的用法详解
关于C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,现将本人的一些体会总结如下,期望对大家有所帮助:一 const基础 如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况: int b = 500; const int* a = &b; [1] int ...
2018-03-15 11:02:22
242
转载 reinterpret_cast,const_cast,static_cast,dynamic_cast 显式类型转换
reinterpret_cast,const_cast,static_cast,dynamic_cast 显式类型转换 Cpp代码 #include<iostream.h> int main(void) { //reinterpret_cast //将一个类型指针转换为另一个类型指针,这种在转换不修改指针变量值数据存放格式 //只需在编译时重新解释指针的类型,他可以将指...
2018-03-14 14:07:03
142
原创 Linux中获得程序时间的函数
精确一点的是用gettimeofday(),不精确的可以用clock();1、gettimeofday()函数1.简介:在C语言中可以使用函数gettimeofday()函数来得到时间。它的精度可以达到微妙2.函数原型:#include<sys/time.h>int gettimeofday(struct timeval*tv,struct timezone *tz )3.说明:g...
2018-03-09 09:55:47
2223
转载 c++中&的使用
对于习惯使用C进行开发的朋友们,在看到c++中出现的&符号,可能会犯迷糊,因为在C语言中这个符号表示了取地址符,但是在C++中它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的办法。在 c++学习提高篇(3)---隐式指针的文章中我详细介绍了在隐式指针&的用法,其实这两个概念是统一的。引用是C++引入的新语言特性,是C++常用的一个重要内容...
2018-03-06 11:06:27
861
原创 git diff命令
Git diff 用于比较两次修改的差异 1.1 比较工作区与暂存区 git diff 不加参数即默认比较工作区与暂存区 1.2 比较暂存区与最新本地版本库(本地库中最近一次commit的内容) git diff --cached [<path>...] 1.3 比较工作区与最新本地版本库 git diff HEAD [<...
2018-03-02 09:55:46
705
转载 git stash 命令
我们有时会遇到这样的情况,正在dev分支开发新功能,做到一半时有人过来反馈一个bug,让马上解决,但是新功能做到了一半你又不想提交,这时就可以使用git stash命令先把当前进度保存起来,然后切换到另一个分支去修改bug,修改完提交后,再切回dev分支,使用git stash pop来恢复之前的进度继续开发新功能。下面来看一下git stash命令的常见用法git stash保存当前工作进度,会...
2018-03-02 09:39:14
179
转载 void与void*详解
void关键字的使用规则: 1. 如果函数没有返回值,那么应声明为void类型; 2. 如果函数无参数,那么应声明其参数为void; 3. 如果函数的参数可以是任意类型指针,那么应声明其参数为void * ; 4. void不能代表一个真实的变量;void体现了一种抽象,这个世界上的变量都是“有类型”...
2018-02-27 16:59:59
233
转载 DefaultKeyedVector和KeyedVector用法
http://blog.csdn.net/qidi_huang/article/details/52618132【用法示例】 在 Android Framework 源码中经常可以看到使用 DefaultKeyedVector 类型的容器。举个例子,在 AudioPolicyManagerBase.cpp 中我们可以看到如下代码:[cpp] view plain copy print...
2018-02-08 18:38:03
2175
原创 杂技杂八
camera中一般都有hal层,只有yuv sensor可以不用hal,sensor内部就有一些处理程序。记住所有的参数都是由apk来进行设定的
2018-02-08 11:24:08
181
转载 Iterator学习
参考:https://blog.csdn.net/summerxiachen/article/details/59538640https://blog.csdn.net/gogokongyin/article/details/51206225什么是Iterator? 迭代器本质来说是一个对象,在使用iterator()方法后返回一个Iterator对象,Iterator实际上是一...
2018-02-06 14:14:10
186
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人