C/C++
文章平均质量分 51
Ron_Tang
这个作者很懒,什么都没留下…
展开
-
(SFINAE)C++检查成员函数是否存在
C++使用SFINAE检查成员函数是否存在原创 2017-02-28 10:20:49 · 3135 阅读 · 0 评论 -
【C++模版之旅】项目中一次活用C++模板(traits)的经历。-新注解
请读者先看这篇文章,【C++模版之旅】项目中一次活用C++模板(traits)的经历。 对于此篇文章提出的问题,我给出一个新的思路。talking is cheap,show me the code.原创 2014-11-26 16:39:28 · 1430 阅读 · 0 评论 -
人机博弈-吃子棋游戏(四)搜索算法
人机博弈,吃子棋搜索算法简介原创 2014-10-19 17:07:39 · 1212 阅读 · 0 评论 -
人机博弈-吃子棋游戏(三)走法生成
人机博弈-吃子棋游戏(三)走法生成,介绍吃子棋的走法生成算法原创 2014-10-17 13:41:22 · 1426 阅读 · 0 评论 -
C++11单例模式,另附C++11令CPU占用率为sin曲线
C++11单例模式,另附C++11令CPU占用率为sin曲线原创 2014-10-30 16:09:16 · 2291 阅读 · 0 评论 -
人机博弈-吃子棋游戏(二)算气
介绍人机博弈-吃子棋游戏,算气算法,此算法也可应用到围棋中。原创 2014-10-10 10:01:39 · 2374 阅读 · 0 评论 -
人机博弈,吃子棋游戏(一)基本介绍
人机博弈,吃子棋游戏的研发简介原创 2014-10-09 11:01:33 · 2524 阅读 · 0 评论 -
关于C++11,14的三本宝书推荐!
三本宝书原创 2014-09-19 10:38:27 · 10446 阅读 · 1 评论 -
基于二分查找法的数值区间查找
本文给出基于二分查找法的区间查找的定义,并辅以C++源码,并介绍一下二分查找法的区间查找的应用。原创 2014-08-18 14:54:44 · 5325 阅读 · 0 评论 -
深入学习C++前向声明
1.我们为什么需要前向声明?2.前向声明的几点事项 前向声明不能声明被typedef 的类型明,可以前向声明其他命名空间类型,可以前向声明模版,前向声明是指声明一个在其他中文件定义的类型,一种不完全声明,前向声明时不能含有未声明类型,但可以包含前向声明,所有前向声明需共同遵守前向声明的使用规则,我们只能声明或定义不完全类型的指针或引用,而且不能对指针进行运算,不能解引用,亦不能使用。原创 2013-12-19 15:44:29 · 7663 阅读 · 0 评论 -
Android输入系统之InputChannel(上)
Android输入系统之InputChannel(上)前面的“锤子快捷键”相关文章已经分析了输入事件的读取,处理,分发。我们知道事件的传递是以window为单位传递的,即server只负责将事件传递给某一个或者多个window,window然后再将事件传递给某一个具体的view。一个activity或者dialog对应一个window,但是事件只传递给合适的window,比如对于按转载 2014-09-10 13:27:59 · 1035 阅读 · 0 评论 -
Android输入系统之InputChannel(下)
Client 对输入事件处理 输入事件,比如按键事件并不是全部被window的view处理了,比如Back键,如果此时系统输入法是显示的,其实该键首先会去关闭输入法,而window的view是接收不到这个键的,这个就是事件处理器链实现的,这个链上又各种处理器,它们按照处理的优先顺序添加咋链表上输入事件处理链 [java] view plainco转载 2014-09-10 13:33:45 · 1024 阅读 · 0 评论 -
《C++ Primer 第五版》练习9.51参考答案
本文给出C++ Primer 第五版 习题9.5.1答案参考原创 2014-08-13 16:29:12 · 1252 阅读 · 0 评论 -
一个小例子演示下epoll和管道的使用
#include #include #include #include #include #include #include using namespace std;int main(){ struct epoll_event ev; //事件临时变量 const int MAXEVENTS = 1024;原创 2014-09-18 14:40:34 · 6074 阅读 · 0 评论 -
类模版静态成员初始化
本对类模版中静态数据成员的初始化方式进行了详细介绍,对于不同静态成员讨论了初始化方式和一些实现细节。原创 2014-08-07 14:51:10 · 8664 阅读 · 1 评论 -
C++11 TypeList 妙用
本文主要讲述,如何应用typelist技术实现类似模板方法模式,使之容易扩充,方便使用。其中,运用了C++标准的 变长模板参数技术(C++11),模板偏特化技术,模板类型默认参数等技术。 本文主要借鉴《C++ template》和《C++设计新思维》两书。原创 2015-01-08 13:27:47 · 1679 阅读 · 0 评论 -
Android Framework Input 机制分析
App进程的Java层的ViewRoot对象,请求与底层建立通信,通过Binder机制调用WindowManagerService | 进而转入到服务进程Java层,由服务进程的Java层通过JNI层层调用,至Native层 InputTransport ,由此创建一对UNIX_AF socket ,将socket的描述符存入C++ InputChannel对象,用于事件传递。之后JNI层层返回,原创 2015-01-14 14:55:42 · 1070 阅读 · 0 评论 -
浅谈增强学习
这篇文章就是浅谈一下机器学习领域下的增强学习。为什么博文的题目为浅谈,因为笔者对机器学习的认知比较浅。我分享一个Q算法的C++代码,该例子体现了如何用Q 算法学习迷宫寻路。读者可参考我上一篇转载博文给出的例子进行学习。原创 2016-10-21 10:41:41 · 13927 阅读 · 0 评论 -
如何正确的使用Lerp In Unity
本文探讨如何用lerp实现近似的匀速旋转,当然如果运用本文给出的方法,使用slerp则可以实现匀速旋转,并指出Unity官方lerp示例代码的一些缺陷。原创 2016-08-31 13:29:32 · 3316 阅读 · 0 评论 -
如何使用lua完成复杂AI
本文分享了作者最近在实际项目中遇到一些问题,以及学到的一些新的设计方法,其内容主要关于Lua & C++原创 2016-01-29 16:35:30 · 3544 阅读 · 0 评论 -
美国末日AI之状态机(The Last Of Us AI)
好久没有写博客了,这半年在游戏公司工作,过得比较充实,每天不是add feature就是debug,所以忽视了写博客。今天发一篇关于AI博客。最近看了一些关于"The Last Of Us"的AI设计文档,并结合一些实际项目的心得,分享一些这方面的经验。关于游戏方面的AI,行为树和状态机,模糊逻辑,机器学习,导航网格,博弈一般是重点话题。本文主要谈的是状态机,并不会涉及其他的高深的东西。原创 2016-01-18 16:09:57 · 1430 阅读 · 0 评论 -
Horspool 算法C++11实现(支持中英文混合搜索)
本文给出一个horspool算法的实现,展示一个使用示例,并向介绍一个非常好用的UTF8字符转码项目,给出一个简单的测试报告等。原创 2015-04-02 16:13:15 · 1427 阅读 · 0 评论 -
C++模板 静态成员 定义(实例化)
浅谈C++模板 静态成员 定义(实例化)原创 2015-03-12 16:21:40 · 1439 阅读 · 0 评论 -
Effective Modern C++》Item 3总结
Effective C++ 条款3,简单介绍下decltype。原创 2015-03-09 14:59:15 · 828 阅读 · 0 评论 -
C++0x,std::move和std::forward解析
深入解析std::move and std::forward原创 2015-03-04 14:41:20 · 690 阅读 · 0 评论 -
再谈 Object Factories(对象工厂)
为什么再谈一次,因为上次代码实在是不够好。上篇文章 对象工厂 给出的代码太过拙劣,限于学识,我自己类型擦除技术仅仅是把对象的指针转换为void* 而已,实际上可以更为巧妙。这次利用新的类型擦出技术,给出一个完美的解决方,请看下文。原创 2015-03-11 14:53:19 · 1216 阅读 · 1 评论 -
《Effective Modern C++》Item 2总结
先提出两个基本观点:1.auto和模板参数类型推导拥有几乎一模一样的规则,所以Item1总结的规则对于auto适用。2.auto和模板参数了类型推导有一个不相同的地方,不同在于对于花括号的处理不同。为什么不同呢?王八屁股,规定!Scotter Meyer也不知道答案。我们知道Item1 ,提出了三个不同的case:1.类型描述符是指针或引用,并且不是全球通引用2.类型描原创 2015-03-02 13:25:25 · 901 阅读 · 0 评论 -
Object Factories(对象工厂)
浅谈C++泛型编程与设计模式---对象工厂原创 2015-02-13 15:03:44 · 2567 阅读 · 0 评论 -
《Effective Modern C++》Item 1总结
<Effective Modern C++>理解模板类型推导总结原创 2015-02-28 13:11:03 · 577 阅读 · 0 评论 -
《C++设计新思维》Command设计模式读后感
本书第5章标题为泛化仿函数,我认为本章真正讲述的内容可以总结出一句话!如何利用C++老标准实现C++11新标准类似std::function提供的功能。原创 2015-02-11 11:39:18 · 858 阅读 · 0 评论 -
Android frameworks Singleton
/* * Copyright (C) 2007 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * Yo原创 2013-12-20 15:12:23 · 2593 阅读 · 0 评论 -
《C++设计新思维》勘误,附C++14新解法
原书(中文版)3.13节,65-69页中GenScatterHierarchy以及FieldHelper均存在问题,本文解释问题原因,并给出一个浅薄的C++14新方案原创 2015-02-03 17:47:00 · 876 阅读 · 0 评论 -
动态规划求取连续数组最大和
动态规划求取连续数组最大和,非优化版,适合新同学理解学习。原创 2014-08-04 13:52:50 · 1777 阅读 · 0 评论 -
在XX公司工作第二天,维护已有代码
依据《C++ More Exception》所述的规则:Rule #1: Never write using-directives in header files.Rule #2: Never write namespace using-declarations in header files.Rule #3: In implementation files, never原创 2014-07-15 16:56:00 · 916 阅读 · 0 评论 -
Android input处理机制(二)改键机制
本文主要总结一下Android平台的改键机制,从三个层次 驱动 键盘布局文件 InputReader所涉及的类: class EventHub; struct Device; class KeyMap; KeylayoutMap; class InputReader;所涉及的文件:frameworks \EventHub.h;原创 2013-12-25 11:22:53 · 2769 阅读 · 0 评论 -
浅谈C++模板,template method,strategy异同
1.模板(函数或是类)模板的灵活性在于不改变算法结构与步骤的情况下,针对不同的数据类型进行处理。我们使用模板时,所需编写的代码量最少,但灵活性不及template method和strategy模式。2.Template Method模式Template Method模式灵活性在于子类可以不改变一个算法的基本结构即可重定义该算法的某些特定步骤,并可以处理不同的数据类型。可见,在原创 2013-12-21 17:58:02 · 966 阅读 · 0 评论 -
深度探索C++对象模型之Data语意学读书笔记
深度探索C++对象模型之Data语意,简单总结GCC和VC++的异同原创 2014-01-07 10:49:44 · 864 阅读 · 0 评论 -
解决/usr/bin/ld: cannot find -luuid编译错误
今天在编译Android代码的时候出现 “/usr/bin/ld: cannot find -luuid” 错误,在网上找了些资料发现是 gcc编译时找不到链接的库,解决办法如下: 1. 在终端下运行命令: locate libuuid 说明:出现的错误是luuid,为什么在locate后面是 libuuid,这是由于链接库的命名造成的。假如出现了 “/usr/bin/l转载 2013-12-20 16:53:35 · 9276 阅读 · 1 评论 -
在Android源码环境中使用STL库
如题,需要在编译模块Android.mk文件中加入LOCAL_SHARED_LIBRARIES := \ libstlport \LOCAL_C_INCLUDES := \ bionic \ external/stlport/stlport \ bionic是需要的,里面虽然不是标准库文件,但标准库文件可能需要它。 另外,并不是所有的STL原创 2013-12-19 15:28:56 · 2198 阅读 · 0 评论 -
linux内核树构建及错误处理总结
linux内核树构建及错误处理总结,其中还包括自定义模块的示例原创 2013-12-31 10:00:27 · 1201 阅读 · 0 评论