- 博客(15)
- 资源 (14)
- 收藏
- 关注
原创 Effective C++ --5 实现
上一部分Effective C++ --4 设计与声明 26、尽可能延后变量定义式的出现时间 (1)这样可以增加程序的清晰度并改善程序效率。如定义变量后还未使用遇到return或者抛出异常,这样未使用却增加了调用构造析构函数的成本。27、尽量少做转型动作 (1)使用c++新式转型,而不要是用旧式转性。有四种新式转型:const_cast()、dynamic_cast()、r
2014-01-30 17:15:13 871
原创 Effective C++ --4 设计与声明
上一部分Effective C++ --3 资源管理 18、让接口容易被正确使用,不易被误用 (1)设计接口时要考虑客户可能可能做出的错误输入,如参数的形式等。19、设计class犹如设计type (1)对象如何被创建和销毁;对象的初始化和赋值的差别;如果被pass by value使用意味着什么;合法值;继承图系;转换;操作符和函数的类型;什么标准函数设置为私有;什么
2014-01-28 17:16:38 979
原创 Effective C++ --3 资源管理
上一部分Effective C++ --2 构造/析构/赋值运算 13、以对象管理资源 (1)为了防止new后提前return等没有执行delete造成内存泄露,利用RAII(resource acquisition is initialization,资源取得时便是初始化时机)对象。 (2)两个常被使用的RAII对象auto_ptr和tr1::shared_ptr
2014-01-27 14:24:34 945
原创 Effective C++ --2 构造/析构/赋值运算
上一部分Effective C++ --1 让自己习惯C++ 5、了解C++默认编写并调用哪些函数(1) 编译器暗自为类创建默认构造函数、拷贝构造函数、拷贝赋值函数和析构函数。(2) 拷贝构造函数中对于内置类型通过拷贝bits来进行初始化,非内置类型通过调用成员变量的拷贝构造函数来进行初始化。(3) 对于内含指针成员的类编译器不会生出赋值操作,必须自己定义拷贝赋
2014-01-27 11:39:46 967
原创 Effective C++ --1 让自己习惯C++
1、视C++为一个语言联邦C++主要的次语言有四种:C、Object-Oriented C++、Template C++和STL。2、尽量以const,enum,inline替换#define(1) #define单纯常量,编译前需要预处理器,没有进入编译的符号表,出错信息不容易定位。(2) #define 不能用于定义常量指针,对const取地址合法,对#define取地
2014-01-27 10:46:08 1074
原创 《STL源码剖析》学习--STL体现的思想
STL总是尽量做到节省内存且效率最高,在看本书中也越来越有深的体会。这里搜集一个stl中提高效率的方法。1.对象的析构如果将一个区间中的所有的对象析构掉,这是如果范围很大,每个析构都是无关痛痒的,对效率有很大伤害。负责对象析构的destroy()有两个版本,第一个版本直接调用对象的析构函数;第二个版本,如果对象的析构是无关痛痒的(其__type_traits是true),则什么也不做,
2014-01-22 09:20:13 1052
原创 《STL源码剖析》学习--六大组件
stl 提供了六大组件,分别为:容器、算法、迭代器、仿函数、适配器和配置器。容器通过配置器取得数据存储空间,算法通过迭代器存取容器的内容,仿函数可以协助算法完成不同的策略,配接器可以修饰或者嵌套仿函数。下面分别简单介绍:1.容器(container) -- 各种数据结构根据数据排列方式分为序列式和关联式:1.1序列式容器(1)vector:与C++提供的静态空间Array
2014-01-22 00:04:51 965
原创 《STL源码剖析》学习--traits
在本书迭代器一节提到了Traits编程技法,将其誉为stl源码门匙,在《C++编程思想》一书中,将其列为模板编程中的习语“特征”,这里进行总结。traits技术 也往往和迭代器一起使用。1、理解概念在《C++编程思想》一书中,特征模板技术,定义为一种将与某种类型相关联的所有声明绑定在一起的方法,可以以一种灵活的方法从语境中将类型和值进行“混合和匹配”,同时又使得代码灵活易读且易于维护。
2014-01-21 15:42:02 1131
原创 《STL源码剖析》学习-- 1.9-- 可能令你困惑的C++语法2
上一篇请见可能令你困惑的C++语法1现在继续,2.临时对象的产生和运用临时对象,是一种无名对象。制造临时对象的方法是,在型别之后加一对小括号,并可以给定初值,这样就会调用响应的constructor。在stl中,往往与仿函数一起使用,这样为了使程序看起来干净。template class print{public: void operator(){const T& elem)
2014-01-21 09:34:16 1385
原创 《STL源码剖析》学习-- 1.9-- 可能令你困惑的C++语法1
最近在看侯捷的《STL源码剖析》,虽然感觉自己c++看得比较深一点,还是感觉还多东西不是那么明白,这里将一些细小的东西或者概念记录一下。有些东西是根据《C++编程思想》理解的。之前囤积了书,也看了很多,但是书往往太厚,很多东西看过就忘记了,还是记录一下加深印象。1、模板 template1.1 typename: 如果在用模板定义的函数内如果不用typename标出类名,则只能把标示符
2014-01-20 09:34:31 1834
原创 《STL源码剖析》学习--6章--_rotate算法分析
最近在看侯捷的《STL源码剖析》,其中有许多不太明白之处,后经分析或查找资料有了些理解,现记录一下。《STL源码剖析》学习--6章--random access iterator _rotate算法分析针对forward iterator 和 bidirectional iterator的_rotate 比较好理解,但是对random access iterator _rota
2014-01-17 12:46:24 1486 1
原创 《STL源码剖析》学习--6章--power算法分析
最近在看侯捷的《STL源码剖析》,其中有许多不太明白之处,后经分析或查找资料有了些理解,现记录一下。6章--power算法分析书本中的算法如下所示:template _Tp __power(_Tp __x, _Integer __n, _MonoidOperation __opr){ if (__n == 0) return identity_element(__opr
2014-01-15 14:17:42 1133
原创 VS2010 MFC exe独立系统环境运行
如何让一个VS 生成的 exe 在没有安装VS 以及 依赖项dll 的电脑上运行,尝试了一下,将中间遇到的问题记录一下。1. 在vs里面编译运行可以,但是点击Debug里面的.exe却显示如下问题:程序目录下已经添加此dll文件,一般情况下,我们会把程序中调用到的dll 文件放于.exe同一目录下。显示为dll文件问题,后发现为路径问题,我的.exe文件 路径为:工程目录/x64/
2014-01-08 15:04:57 5096
原创 Vs2010 MFC 简单制作过程中的问题
以前做过一段时间MFC,都忘得差不多了,最近又做了一个小界面。注意类向导的使用,当自己添加的afx_msg 响应不对时,往往类型。
2014-01-01 14:54:49 1921
最新版本ffmpeg提取任意格式视频帧并保存
2013-09-08
ffmpeg-bin-lib-include
2013-09-08
CentOS-5.9-x86_64-bin-DVD
2013-08-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人