自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Small Flows

学而时习之,不亦说乎

  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

原创 【C++ STL应用与实现】目录

这篇文章是《STL应用与实现》系列的目录, 也是这系列文章的写作计划。STL的总结主要分成四大块:容器、迭代器、函数对象和算法。每个大块细分成的每个叶子节点就对应着一篇文章,文章标题在目录里以超链接的形式展现,作为一个索引。已经完成的文章,我会在后面加上【完成】标识。跳转不过去的就是未完成的文章,作为写作计划。

2015-12-19 08:07:18 16321 3

原创 【C++ STL应用与实现】0: 感恩STL——STL, ACM和年轻的我们

本文是一篇洗脑文,鼓吹STL的好处, 回忆作者第一次认识STL,并给出STL的学习路线。

2015-12-17 13:50:39 10691

原创 【cocos2d-x 3.x 学习与应用总结】3: CallFunc系列

CallFunc系列对象是Action的一种,具体来说它是瞬时动作(ActionInstant)的一种,其它的瞬时动作还包括Show, Hide, ToggleVisibility, RemoveSelf, FlipX, FlipY, Place等,这么多的瞬时动作,为什么把CallFunc提取出来呢,它有什么好说的呢?首先是从使用频率上来看的,CallFunc通常和DelayTime一起组成一个Sequence

2015-12-30 23:47:11 6415

原创 【C++ STL应用与实现】19: 迭代器特性-iterator traits

本文介绍了STL中的迭代器相关的类型和特性,它们用来定义和区分不同的迭代器类型。如iterator tag作为迭代器的“标签”用来区分迭代器的类型;iterator traits定义了所有类型的迭代器都应该有的公共信息。那标准库为什么提供这些东西呢?答案是我们可以根据这些信息来编写泛型代码,在泛型代码里根据iterator traits来判定迭代器的类型以做相应处理、可以自己定义迭代器实现自定义的迭代器操作。

2015-12-30 00:42:31 2466 1

原创 【C++ STL应用与实现】18: 如何使用迭代器适配器

本文介绍了STL中的迭代器适配器(iterator adapter)的概念及其使用方法示例。迭代器适配器可以和标准库中的算法配合使用,达到一些特殊的效果。迭代器适配器分为以下几类:- reverse iterator : 反向迭代器- insert iterator : 插入型迭代器- stream iterator : 流迭代器- move iterator : 移动型迭代器

2015-12-29 01:15:05 1669

原创 【C++ STL应用与实现】16: 迭代器综述

本文介绍了STL中的迭代器的概念和五种类别的迭代器:`Output iterator`, `Input iterator`, `Forward iterator`, `Bidirectional iterator`, `Random-access iterator`.迭代器是为了表示容器中某个元素位置这个概念而产生的,有一般到特殊("高级")可以把它分成五类,如下表所示:

2015-12-27 22:53:42 1455

原创 【C++ STL应用与实现】17: 如何使用迭代器辅助函数

本文介绍了STL中的迭代器辅助函数的用法及注意事项,这些迭代器辅助函数包括:advance, next (since C++11), prev (since C++11), distance, iter_swap.使用这些辅助函数需要包含头文件:#include <iterator>advance, next, prev, distance这四个辅助函数使得所有迭代器都拥有类似随机访问迭代器的特性,比如adv

2015-12-26 23:33:23 2268

原创 【C++ STL应用与实现】7: 如何使用std::forward_list 单链表 (since C++11)

本文介绍了STL中的序列式容器`std::forward_list`, 从它的名字就能推测出来,它是单向的,只能前进(forward). 确实如此,它其实就是对C语言风格的单链表的封装,仅提供有限的接口,相对于std::list(双向链表,并且定义很多接口)来说它节省了内存,同时又有比list更好的运行时性能;

2015-12-25 23:46:01 6049

原创 【C++ STL应用与实现】64: 如何使用shuffle和random_shuffle : 洗牌 (since C++11)

本文介绍了STL中的变序类算法(mutating algorithm)里面的洗牌算法:std::random_shuffle和std::shuffle.random_shuffle算法在C++11之前就已经存在,C++11之后由于右值引用的引入,它的使用范围变大了。shuffle算法则是从C++11之后才开始出现,可以与随机数和分布库一起使用。与本系列的其他文章一样,本文介绍该最新的使用方法,比如rand

2015-12-25 00:23:06 19221

原创 【C++ STL应用与实现】5: 如何使用std::array (since C++11)

本文总结了STL中的序列式容器array的用法及注意事项。array的出现代表着C++的代码更进一步“现代化”,就像std::string的出现代替了c风格字符串并且能和STL配合工作一样,array的出现则将取代语言内置的数组以及c风格的数组字符串,它提供了data()接口,使得能够获得内部数组的首地址,它提供了size(), 能够得其固定的长度,使得C++的数组也可以像Java等语言那样知道自己的length;它

2015-12-24 00:52:44 12462 2

原创 【C++ STL应用与实现】26: 如何使用std::for_each以及基于范围的for循环 (since C++11)

本文总结了STL算法中for_each, for_each算法很常用,以致于C++11定义了一个新的语法: `range based for loop`, 也就是基于范围的for循环,直接在语法层面把for_each的功能给实现了。本文给出一些使用`for_each`和rang-based for loops的用法,并说明for loops的实现原理和使用注意事项。

2015-12-23 00:25:23 14977

原创 【C++ STL应用与实现】23: 如何使用std::mem_fn (since C++11)

本文总结了STL中函数适配器:`mem_fn`系列函数的用法,它们是:`mem_fun (c++98)`, `mem_fun_ref (c++98)`, `mem_fn (c++11)`. 文中给出了它们各自的使用范围及代码示例,提到了mem_fn的使用限制,使用bind来解决这个限制。

2015-12-21 23:48:34 20581

原创 【cocos2d-x 3.x 学习与应用总结】2: 在cocos2d-x中使用ccbi

本文以3.9版本的cocos2d-x为例,总结了如何在代码中解析、加载ccbi文件。给出一个最简单的使用ccbi实现的helloworld的例子、一个加强版的HelloWorld示例、以及一个最贴近实际使用情况的ccbi使用示例, 并结合示例分析ccbi的解析过程。

2015-12-20 22:37:55 13887 2

原创 【C++ STL应用与实现】86: 如何使用std::accumulate

本文总结了STL算法中,数值类算法(numeric algorithm)里的第一个算法: std::accumulate的使用, 及注意事项

2015-12-18 09:45:37 19606 2

原创 【C++ STL应用与实现】22: 函数组合之1:如何使用std::bind (since C++11)

本文总结了std::bind这个模板函数的用法,给出了std::bind绑定普通函数(函数指针)、lambda表达式、成员函数、成员变量、模板函数、嵌套std::bind等的语法细节及注意的问题。

2015-12-16 07:31:05 16247 3

原创 【C++ STL应用与实现】1: STL概览和分类

本文从整体上对STL的内容和功能做了一个概览,并根据其组成部分功能的不同对STL的组件进行分类。在后续的文章中会对每个分类中的组件进行展开说明。

2015-12-15 22:32:14 8543

原创 【cocos2d-x 3D游戏开发】3: 游戏帧循环

前言高实时性是游戏区别于传统软件、应用的一个重要特征,游戏里通常有一个比较高频率的循环在处理用户输入、物理逻辑更新、业务逻辑更新以及图形渲染等工作, 以保证这种实时性的要求。我们把每一次循环叫做一帧,把每秒钟游戏更新的帧数称作“帧率(Frame Per Second)”, 也就是常说的FPS。电影的帧率通常是24FPS,cocos2d-x默认的帧率是60FPS, VR游戏中对帧率的要求则更高,通常至

2015-12-14 09:07:13 8913

原创 【cocos2d-x 3D游戏开发】2: 2D基础回顾---理解CCMenu类的实现, 实现点击放大的菜单按钮

本文介绍了CCMenu类的实现原理,并在CCMenu的基础上稍加改造,实现了一个点击自动缩放的菜单类。

2015-12-10 23:45:25 8213

原创 【cocos2d-x 3D游戏开发】0: 3D时代到来,学cocos3D还是Unity3D?

作为一名cocos2d-x开发者,开发2D游戏已经有两年多了,这两年来目睹了手游市场的浮躁, cocos引擎的出现降低了手游开发的门槛,提高了手游生产效率,这两年着实是火的不行。然而,手游发展速度神速,眨眼间3D手游几乎以铺天盖地之势袭来。cocos的一个“劲敌”unity卷土而来,几乎霸占了整个3D市场,很多开发者都欣然奔向了unity的怀抱。cocos2d-x也从3.3版本之后开始猛加3D功能,如今3D功能也是比

2015-12-09 08:05:16 7843 2

原创 【C++学习与应用总结】2: 关于类型前置声明

本文总结了c++中前置声明的写法及注意事项,列举了哪些情况可以用前置声明来降低编译依赖。

2015-12-04 07:51:18 6199 1

原创 【cocos2d-x 3D游戏开发】1: 2D基础回顾---触摸事件(2.x)

前言本文回顾了cocos2d-x中触摸事件的使用方法和注意事项,并给出一个带有点 击缩放功能的自定义菜单类的实现。

2015-12-02 07:43:20 10072

Cool Reader 3-1-0 - lib(so)文件压缩包

从git下载Cool Reader源代码没有生成好的libs文件,因此需要手动使用ndk-build来编译native函数。压缩包是编译好的libs文件。 使用时拷贝”libs“文件夹到android项目根目录。

2013-07-31

空空如也

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

TA关注的人

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