对应书中第三章 内存管理,着重讲 boost 实现的智能指针,和内存池pool 等概念。众所周知,C++没有提供Java中的垃圾回收机制,因此 boost 实现智能指针用来管理内存避免一些问题。C++继承 C 高效灵活地指针,但是同样带了了很多问题:
内存泄露 memory leak
野指针 wild pointer
越界访问 access denied
虽然STL提供了 auto_ptr,但是受限太多(不能放到容器中,因为不支持拷贝构造函数和赋值),因此很少有人使用。
智能指针(smart_ptr)是Boost各组件中,应用最为广
Read more ...
date_time 日期相关的库,是 boost 中少数需要编译的库,但是实践中,在 Linker 链接器中链接 libboost_date_time.a 即可。也就是在链接时,加上 -l(boost_date_time) 参数。
头文件
使用 date_timer 需要包含以下头文件。
diedaiqi
#include <boost/date_time/gregorian/gregorian.hpp>
using namespace boost::gregorian;
date基本使用
将时间想象成无线延伸的实数轴,
Read more ...
C++中操作时间的类。timer 是一个很小的库,提供简易的度量时间和进度显示的功能,可用于测试性能计时任务等大多数情况。timer 库包含三个组件, 计时器类 timer, progress_timer 和进度条指示类 progress_display。对应书中第二章内容。
timer
头文件
timer 位于boost命名空间,需要包含头文件 <boost/timer.hpp> 即:
#include <boost/timer.hpp>
using namespace boost;
基本方法
timer变量声明之后即
Read more ...
那天需要将一段视频文件转成 gif,偶遇 ffmpeg,于是就学习了一下,它真的很强大。在看资料的过程中也是挺有趣的,发现其实 kmplayer 以及国内的 QQ 影音,暴风等等,都不同程度的使用了 ffmpeg,可是根据 ffmpeg 的开源许可 LGPL,任何使用 ffmpeg 的软件都必须开源,于是乎 QQ 影音,暴风都上了 ffmpeg 的耻辱柱,如果没接触到 ffmpeg 还真不知道有这一茬,国内的黑心厂商真是拿开源社区的东西都不遵循开源协议。
下面就直接进正题吧:
几个概念
在进入 ffmpeg 入门之前有一些基本概念需要了解,我在查看
Read more ...
开始接触boost是因为项目中用到C++与Python的相互调用传值,后来找到一本《boost程序库完全开发指南》感觉boost库很强大,就学了一下。所以boost学习笔记基本沿用《boost程序库完全开发指南》书中脉络。
因为C++是强类型语言,所以对于Python,perl之类的动态语言来说很麻烦的一件事情就是类型转换,虽然C中也提供了atoi(),atof()之类的函数,但是总体也还是很麻烦。幸而有了lexical_cast,他可以用来进行字符串、整数/浮点数之间的字面转换。
头文件
lexical_cast 位于boost命名空间,为了使用
Read more ...
这篇文章讲如何安装 boost 库,最完整的教程永远在官网。以下内容部分翻译自官方文档。
首先来看一看在Linux下安装 boost 库。
Ubuntu/Debian/Linux Mint 安装boost
运行以下命令:
sudo apt-get install libboost-all-dev
然后输入密码,安装,安装完之后目录在 /usr/include/boost 下。
Linux下使用
Eclipse或者其他IDE中使用 boost 时,需要以下几步,引入头文件,添加库。
C/C++ Build, Cross G++ Linke
Read more ...
Security
Security is the most important thing we should take care at first.
Change password
The first thing you login into your VPS using root is to change your root password your VPS provider gave. Run the passwd to change your root password.
After you run this command, your
Read more ...
说是N6的Tips,当然里面很多都是Android 6.0 隐藏的功能。只要是原生 6.0 的系统都能够开启。
双击唤醒
Nexus 6 double tap to wake, root 之后安装一个app即可。
具体参考:xda-developers
开启状态栏电池百分比
原生 Android 6.0 有个小技巧能够开启状态栏的电池百分比,下拉通知栏,长按开启设置的齿轮,会打开Android 6.0 隐藏的设置,此时进入系统设置,会多出一个“System UI Tuner”,进入打开“Show embedded battery percentag
Read more ...
期待了半年的《火星救援》并没有让我感到失望。
写在观影之前
早在今年6月份看到一段预告片之后就将这部电影加入了待看片单,等了半年,在好莱坞大片云集的11月,也没有去看任何影片只等着这一部。马特达蒙,最喜欢的演员,星际宇宙,最喜欢的题材,有这这样的组合怎能不让人期待。
写在观影之后
终于在等了半年之后,在25号看了0点场,电影没有让我失望,当然带来的感动和震撼也并没有超出想象。或许是《地心引力》和《星际穿越》的铺垫,让我对此类讲述宇宙的电影有了最基本的感受,宇宙浩瀚的视觉体验,飞船对接的惊险,以及人类在广袤宇宙的渺小。
这部电影的剧情其实很简单
Read more ...