<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[starzpc的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/starzpc</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; starzpc]]></copyright><item><title><![CDATA[coredump简介与coredump原因总结]]></title><link>https://blog.youkuaiyun.com/starzpc/article/details/78262819</link><guid>https://blog.youkuaiyun.com/starzpc/article/details/78262819</guid><author>starzpc</author><pubDate>Tue, 17 Oct 2017 17:21:17 +0800</pubDate><description><![CDATA[coredump简介与coredump原因总结


什么是coredump？

通常情况下coredmp包含了程序运行时的内存，寄存器状态，堆栈指针，内存管理信息等。可以理解为把程序工作的当前状态存储成一个文件。许多程序和操作系统出错时会自动生成一个core文件。

如何使用coredump?

coredump可以用在很多场合，使用Linux,或者solaris的人可能都有过这]]></description><category></category></item><item><title><![CDATA[boolan——c++学习笔记之设计模式三]]></title><link>https://blog.youkuaiyun.com/starzpc/article/details/70233533</link><guid>https://blog.youkuaiyun.com/starzpc/article/details/70233533</guid><author>starzpc</author><pubDate>Tue, 18 Apr 2017 22:43:15 +0800</pubDate><description><![CDATA[c++设计模式总结


一、设计模式的设计目标


二、面向对象的手段


三、八大设计原则
设计模式基本上都是依据八大原则设计的。


四、重构技法
设计模式时的一些常用技法。




五、模式分类
红色圈内的几个模式现在在c++设计中已经不常用，有些由于现在c++已经有更好的方式解决问题，有些使用比较局限。




六、c++对象模型
所有设]]></description><category></category></item><item><title><![CDATA[boolan——c++学习笔记之设计模式二]]></title><link>https://blog.youkuaiyun.com/starzpc/article/details/70162465</link><guid>https://blog.youkuaiyun.com/starzpc/article/details/70162465</guid><author>starzpc</author><pubDate>Thu, 13 Apr 2017 21:52:15 +0800</pubDate><description><![CDATA[对象创建模式






一、工厂方法（Factory Method）












二、抽象工厂（Abstract Factory）]]></description><category></category></item><item><title><![CDATA[boolan——c++学习笔记之设计模式一]]></title><link>https://blog.youkuaiyun.com/starzpc/article/details/69364530</link><guid>https://blog.youkuaiyun.com/starzpc/article/details/69364530</guid><author>starzpc</author><pubDate>Wed, 05 Apr 2017 22:55:06 +0800</pubDate><description><![CDATA[什么是设计模式
“每一个模式描述了一个在我们周围不断重复发生的问题，以及该问题的解决方案的核心。这样，你就能一次又一次地使用该方案而不必做重复劳动”。

——Christopher Alexander

软件设计复杂的根本原因

变化
客户需求的变化
技术平台的变化
开发团队的变化
市场环境的变化

。。。


如何解决复杂性？

分解

抽象


]]></description><category></category></item><item><title><![CDATA[boolan——c++学习笔记之move]]></title><link>https://blog.youkuaiyun.com/starzpc/article/details/68502712</link><guid>https://blog.youkuaiyun.com/starzpc/article/details/68502712</guid><author>starzpc</author><pubDate>Thu, 30 Mar 2017 21:59:35 +0800</pubDate><description><![CDATA[前言
C++11提供了move语义，可以提高大大STL的效率。


一、move对STL一些容器操作效率的提高
下面几个图中分别对vector，deque，multiset进行拷贝构造和move构造的效率对比，可以看到move构造比拷贝构造快很多。








二、一个拥有move特性的class
MyString 类中有比不同string类多了一个move构造函]]></description><category></category></item><item><title><![CDATA[boolan——c++学习笔记之STL迭代器分类]]></title><link>https://blog.youkuaiyun.com/starzpc/article/details/65442185</link><guid>https://blog.youkuaiyun.com/starzpc/article/details/65442185</guid><author>starzpc</author><pubDate>Thu, 23 Mar 2017 13:06:45 +0800</pubDate><description><![CDATA[前言
c++ STL提供了多种迭代器种类，并且居然有继承关系，它用于告诉算法对于指定容器作指定的迭代器操作。


一、cppreference中对Iterator category的描述




二、迭代器支持的操作以及各容器所含迭代器种类
1、各类迭代器支持的操作
Input iterators : ==, !=, ++, *, ->                    ]]></description><category></category></item><item><title><![CDATA[boolan——c++学习笔记之STL哈希表探究]]></title><link>https://blog.youkuaiyun.com/starzpc/article/details/62237745</link><guid>https://blog.youkuaiyun.com/starzpc/article/details/62237745</guid><author>starzpc</author><pubDate>Wed, 15 Mar 2017 22:08:14 +0800</pubDate><description><![CDATA[一、简介
c++STL容器unordered_set、unordered_map、unordered_multiset、unordered_multimap内部是用哈希表实现的，以下将详细介绍c++STL哈希表的实现。


二、哈希表排列结构
1、哈希表buckets个数大于元素个数，当元素个数大于等于buckets个数时，哈希表将rebuild，扩大buckets个数，GNU C2.9]]></description><category></category></item><item><title><![CDATA[boolan——c++学习笔记之容器探索]]></title><link>https://blog.youkuaiyun.com/starzpc/article/details/60957956</link><guid>https://blog.youkuaiyun.com/starzpc/article/details/60957956</guid><author>starzpc</author><pubDate>Thu, 09 Mar 2017 13:17:52 +0800</pubDate><description><![CDATA[一、各类容器创建空对象时所占内存




二、迭代器
迭代器是算法实现容器的一个桥梁，类似于一个指针，可对容器的元素作指针的操作，比如“++”，“--”，“*”，“->”等，每个容器都有实现自己的迭代器。






三、迭代器的萃取机
1、迭代器内部为关联类型之上加了一个中间层——iterator traits（迭代器萃取机），用以区分传入的是类的迭代器还是单纯的类型]]></description><category></category></item><item><title><![CDATA[boolan——c++学习笔记之容器]]></title><link>https://blog.youkuaiyun.com/starzpc/article/details/59489362</link><guid>https://blog.youkuaiyun.com/starzpc/article/details/59489362</guid><author>starzpc</author><pubDate>Thu, 02 Mar 2017 14:24:43 +0800</pubDate><description><![CDATA[一、各容器内存存储结构







二、各容器特征描述

（1）array

创建：固定长度；

存储方式：连续存储数组；

访问元素：可随机访问；

增减元素：不支持；





（2） vector




创建：不定长度，单向增长；

存储方式：连续存储数组，增加元素时内存动态增加大于元素大小；

访问元素：可随机访问；]]></description><category></category></item><item><title><![CDATA[boolan——c++学习笔记之STL简介]]></title><link>https://blog.youkuaiyun.com/starzpc/article/details/59488738</link><guid>https://blog.youkuaiyun.com/starzpc/article/details/59488738</guid><author>starzpc</author><pubDate>Thu, 02 Mar 2017 12:43:41 +0800</pubDate><description><![CDATA[一、STL简介
（1）六大组件：


（2）六大组件之间关系：

分配器给容器分配内存；
算法实现容器；
由迭代器做为算法和容器的桥梁；
仿函数为算法提供功能；
适配器对容器、仿函数、迭代器做接口转换；


（3）代码示例（包含六大组件）]]></description><category></category></item><item><title><![CDATA[boolan——c++学习笔记之pointer-like classes]]></title><link>https://blog.youkuaiyun.com/starzpc/article/details/56304244</link><guid>https://blog.youkuaiyun.com/starzpc/article/details/56304244</guid><author>starzpc</author><pubDate>Tue, 21 Feb 2017 21:27:25 +0800</pubDate><description><![CDATA[1、pointer-like classes,智能指针
例子：shared_ptr


2、pointer-like classes，迭代器
例子：iterator]]></description><category></category></item><item><title><![CDATA[boolan——c++学习笔记之c++转换函数]]></title><link>https://blog.youkuaiyun.com/starzpc/article/details/56299195</link><guid>https://blog.youkuaiyun.com/starzpc/article/details/56299195</guid><author>starzpc</author><pubDate>Tue, 21 Feb 2017 20:31:31 +0800</pubDate><description><![CDATA[1、conversion function(转换函数)
条件： 有一个基本类型转换函数
用途：把对象转成基本数据类型
例子：
class Fraction
{
public:
	explicit Fraction(int num, int den=1) 
	  : m_numerator(num), m_denominator(den)
	{ cout 
	
 	operator doub]]></description><category></category></item><item><title><![CDATA[boolan——c++学习笔记之多态对象模型]]></title><link>https://blog.youkuaiyun.com/starzpc/article/details/55260900</link><guid>https://blog.youkuaiyun.com/starzpc/article/details/55260900</guid><author>starzpc</author><pubDate>Thu, 16 Feb 2017 17:36:06 +0800</pubDate><description><![CDATA[c++用虚函数、虚指针、虚表的手段来实现多态，其中虚函数需要程序员手动书写，虚指针和虚表由构造对象的时候在内存中生成。


下图为对象多态模型：




有A、B、C三个对象，关系为B继承A、C继承B，并且每个类中有虚函数和非虚函数。
（1）生成对象时如果类中有虚函数，则会在内存中生成一个虚指针，指向一个虚函数表；
（2）如果父类有虚函数，子类对象继承父类的虚指针，对象中虚指针]]></description><category></category></item><item><title><![CDATA[boolan——c++学习笔记之类关系]]></title><link>https://blog.youkuaiyun.com/starzpc/article/details/54933254</link><guid>https://blog.youkuaiyun.com/starzpc/article/details/54933254</guid><author>starzpc</author><pubDate>Wed, 08 Feb 2017 21:02:22 +0800</pubDate><description><![CDATA[类的的三种关系：1）继承（inheritance）2）复合（composition）3）委托（delegation）
1）继承（inheritance）

1、继承关系表现


2、继承关系的构造和析构


2）复合（composition）
1、复合关系表现及应用场景（adapter）


2、复合的构造和析构


3）委托（delegation）

1、委托]]></description><category></category></item><item><title><![CDATA[svn常用命令详解]]></title><link>https://blog.youkuaiyun.com/starzpc/article/details/54891259</link><guid>https://blog.youkuaiyun.com/starzpc/article/details/54891259</guid><author>starzpc</author><pubDate>Mon, 06 Feb 2017 11:36:56 +0800</pubDate><description><![CDATA[原文  http://blog.youkuaiyun.com/prettyshuang/article/details/38421205





目录(?)[-]

ubuntu下安装subversion客户端检出导出导出一个干净的不带svn文件夹的目录树添加新文件 提交更新文件删除文件加锁解锁 比较差异 查看文件或者目录状态查看日志查看文件详细信息SVN 帮助查看版本库下的文件和目录列表 ]]></description><category></category></item><item><title><![CDATA[Name Mangling in C++]]></title><link>https://blog.youkuaiyun.com/starzpc/article/details/54882087</link><guid>https://blog.youkuaiyun.com/starzpc/article/details/54882087</guid><author>starzpc</author><pubDate>Sun, 05 Feb 2017 17:08:52 +0800</pubDate><description><![CDATA[摘要：详细介绍了C++中的Name Mangling的原理和gcc中对应的实现，通过程序代码和nm C++filt等工具来验证这些原理。对于详细了解程序的链接过程有一定的帮助。
Name Mangling概述
大型程序是通过多个模块构建而成，模块之间的关系由makefile来描述。对于由C++语言编制的大型程序而言，也是符合这个规则。
程序的构建过程一般为：各个源文件分别编译，形成目标文件。]]></description><category></category></item><item><title><![CDATA[H264编码原理以及I帧B帧P帧]]></title><link>https://blog.youkuaiyun.com/starzpc/article/details/54668112</link><guid>https://blog.youkuaiyun.com/starzpc/article/details/54668112</guid><author>starzpc</author><pubDate>Sun, 22 Jan 2017 13:53:40 +0800</pubDate><description><![CDATA[前言       
    H264是新一代的编码标准，以高压缩高质量和支持多种网络的流媒体传输著称，在编码方面，我理解的他的理论依据是：参照一段时间内图像的统计结果表明，在相邻几幅图像画面中，一般有差别的像素只有10%以内的点,亮度差值变化不超过2%，而色度差值的变化只有1%以内。所以对于一段变化不大图像画面，我们可以先编码出一个完整的图像帧A，随后的B帧就不编码全部图像，只写入与A帧的差别，]]></description><category></category></item><item><title><![CDATA[boolan——c++学习笔记之内存分配]]></title><link>https://blog.youkuaiyun.com/starzpc/article/details/54647374</link><guid>https://blog.youkuaiyun.com/starzpc/article/details/54647374</guid><author>starzpc</author><pubDate>Sat, 21 Jan 2017 21:20:13 +0800</pubDate><description><![CDATA[1、动态分配内存new
new过程按以下过程实现：




2、动态内存释放delete
delete过程按以下过程实现：





3、动态分配对象内存块
以下内存块为VC 环境，
红色区域表示cookie字节，用于计算内存总量用量；
灰色区域表示debug字节；
绿色区域表示数据；
青色区域表示pad，附加字节，用于凑足16字节倍数；
说明：一个矩形框4个]]></description><category></category></item><item><title><![CDATA[boolan——c++学习笔记1]]></title><link>https://blog.youkuaiyun.com/starzpc/article/details/54577833</link><guid>https://blog.youkuaiyun.com/starzpc/article/details/54577833</guid><author>starzpc</author><pubDate>Mon, 16 Jan 2017 21:59:02 +0800</pubDate><description><![CDATA[1、头文件防御式定义；
2、构造函数定义注意点，参数初始化默认值，初始化列表；
3、函数参数尽量传引用、返回值返回引用需要视情况而定，如局部变量一般不返回引用；
4、变量，函数内不改变成员变量，定义成const；
5、友元函数，在类中把全局函数声明为友元，改全局函数可以直接访问类成员；友元函数在类中声明只是定义访问权限，需要在类外面再次声明；
6、短小、快速执行的函数尽量定义为inlin]]></description><category></category></item><item><title><![CDATA[Mware虚拟机中的ubuntu硬盘扩容]]></title><link>https://blog.youkuaiyun.com/starzpc/article/details/50630734</link><guid>https://blog.youkuaiyun.com/starzpc/article/details/50630734</guid><author>starzpc</author><pubDate>Wed, 03 Feb 2016 18:07:58 +0800</pubDate><description><![CDATA[1、通过vm的UI界面进行扩容基本上是不行的，至少在我的版本上是这样，各种灰色按钮，各种出错；并且，界面扩容失败后若打不开虚拟机，不要慌，只要你扩容之前的那个硬盘文件（我的是ubuntu64.vmdk，全编一个android项目后39G）还在，基本上是可以恢复的，一定要有耐心哟。另外，如果不是服务器级的硬盘，就不要使用快照了，感觉这个功能很坑爹，非常吃硬盘不说，关键是当它吃完你的硬盘后，你想删除快]]></description><category></category></item></channel></rss>