自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

面向对象思考

天下难事必作於易。天下大事必作於细。

  • 博客(14)
  • 资源 (24)
  • 收藏
  • 关注

原创 C++11新特性(43)- 智能指针weak_ptr

弱指针weak_ptr看起来更像shared_ptr的附属品,它从shared_ptr衍生,但不会控制所指向对象的生命周期。weak_ptr的弱就弱在这里。构建一共有三种形式,都非常简单,直接看代码。执行结果:虽然根据shared_ptr构造了两个weak_ptr,引用计数仍然为1。赋值一样的简单。输出结果:虽然根据shared_pt为两个weak_ptr赋值,引用计数仍然为1。使用C++11标准...

2018-06-27 20:12:46 519 3

原创 C++11新特性(42)- 智能指针unique_ptr

软件开发中有很多处理是对称的,例如打开文件和关闭文件,申请内存和释放内存,压栈和出栈等。同样的道理分享也存在对称处理:独占。与之相应的智能指针就是unique_prt。它同样可以自动管理内存,只是这块内存不和其他的unique_ptr分享。初始化如果观察unique_ptr的构造函数声明会发现,unique_ptr支持的构造函数和shared_ptr相差无几,这里直接举例。初始化空unique_p...

2018-06-26 20:09:04 454

原创 C++11新特性(41)- 智能指针shared_ptr(3)

初始化(构造函数)之后,今天继续说明赋值(赋值运算符)。在实现时构造函数和赋值运算符的区别很明显,一个是构造函数,一个是运算符重载。但是在使用时有时还是不大好区分,例如一个赋值表达式有时也会调用构造函数等。本文的内容还是来自下面的网站:http://www.cplusplus.com/reference/memory/shared_ptr/operator=/拷贝赋值函数原型:shared_ptr...

2018-06-25 20:29:44 621

原创 C++11新特性(40)- 智能指针shared_ptr(2)

本文说明shared_ptr的初始化。shared_prt的本身是一个类,所以它的初始化实际上就是调用shared_ptr类的构造函数。通过分析shared_ptr的构造函数,就可以准确把握shared_ptr初始化的方法。default构造函数函数原型:constexpr shared_ptr() noexcept;说明:声明空shared_ptr。代码示例:由空指针构造函数原型:constex...

2018-06-21 20:32:08 801 2

原创 C++11新特性(39)- 智能指针shared_ptr(1)

C/C++被认为是最难掌握的高级语言,其原因除了指针以外就是内存管理。长期以来,内存的取得和释放方面的问题成为无数程序员的噩梦。为了解决这个问题,C++11标准库引入了两种智能指针,动作类似于常规指针,同时具备在合适的时机自动释放内存的功能。当然了,智能指针并不是一个新想法,只是到了C++11才被纳入到标准库。今天先说明shared_ptr。基本原理shared_ptr在内部维护一个相当于引用计数...

2018-06-20 20:31:38 1306

原创 C++11新特性(38)- 无序关联容器

C++11之前的关联容器在C++11之前的关联容器一共有四种。首先是两种最基本的类型:map和set。map中保存的是关键字-值的组合,而set中只保存关键字。map和set中的关键字不允许重复,一旦相同的关键字重新写入,则原来的内容被覆盖。如果希望关键字可以重复,可以使用multimap和multiset。用图表表示就是下面这样。由于这些关联容器的存储位置是根据比较运算符决定的,所以也成为有序关...

2018-06-19 20:42:37 1136 1

原创 C++11新特性(37)- 关联容器的列表初始化

什么是关联容器关联容器(associative container)并不是C++11才有的概念,之所以叫关联容器是因为容器中的元素是通过关键字来保存和访问的,与之相对的是顺序容器(sequence container),其中的元素是通过它们在容器的位置来保存和访问的。顺序容器的例子 vector<string> name{"zhao", "qian",             "sun...

2018-06-14 20:28:48 647

原创 C++11新特性(36)- 参数绑定

lambda表达式的缺点还记得当初引入lambda表达式的原因么?向算法传递谓词时,由于一般的函数无法传递参数以外的信息,函数对象又比较麻烦,所以引入了lambda表达式。但是lambda表达式也有缺点:在类似功能多次使用的时候,每次定义lambada表达式也会比较麻烦。本文介绍另一种方式:参数绑定。标准库bind函数继续用lambda表达式中用过的例子,如果希望找到第一个长度小于2的string...

2018-06-13 20:21:10 513 1

原创 C++11新特性(35)- lambda表达式(6)

为什么是lambda?讲了这么多天的lambda表达式,有一个很基本的问题没有回答:为什么叫lambda表达式呢?首先这个lambda就是罗马字母λ,lambda表达式即λ表达式。数学上有一个概念叫λ演算,其中的一个内容就是λ表达式。考虑普通的数学函数表示方法:f(x) = 2x + 1按照λ表达式的规则,可以写成:λx.(2x+1)这个表达式可以读成“对于参数x,2x+1。这里的Lambda,λ...

2018-06-12 19:33:03 491

原创 C++11新特性(34)- lambda表达式(5)

可变lambda假设有如下vector,保存的内容是学生的考试成绩:vector<int> score{45, 70, 56, 86, 28, 60, 90};可以用以下代码来寻找第一个及格成绩:find_if(score.begin(), score.end(),        [](int v){return (v >=60);});如果需要找到第n个及格成绩,很自然地会考...

2018-06-11 22:30:22 344

原创 C++11新特性(33)- lambda表达式(4)

可以认为lambda表达式取得信息有两种方式,或者说两个时机:一个是参数列表,其内容是在表达式被调用时决定;另一个捕获列表,其内容是在是表达式被创建的时候决定,本文讨论捕获列表。值捕获先看如下代码:int factor = 2;auto multiply = [factor](int value)                {return factor * value;};factor = 4...

2018-06-08 20:50:56 544

原创 C++11新特性(32)- lambda表达式(3)

函数对象考虑下面的代码:bool istarget(const string& s){    return s.size() < 2;}vector<string> v{"This","is", "a", "predicate", "."};auto found = find_if(v.begin(), v.end(), istarget);cout

2018-06-06 19:16:50 564

原创 C++11新特性(31)- lambda表达式(2)

可调用对象对于一个表达式e,如果可以编写代码以e(args)的形式执行它,就可以说e是可调用的。例如下面的函数:int add(int a, int b);可以这样编写代码:int ret = add(1, 2);按照前面提到的原则,就可以说add是可调用的。到C++98为止,可调用对象有函数,函数指针,函数对象等。正式介绍一下C++11之后引入的lambda表达式也是一种可调用对象,其标准形式如...

2018-06-05 21:00:51 510

原创 C++11新特性(30)- lambda表达式(1)

泛型算法中的定制操作很多算法都会比较输入序列中的元素,通过定制比较动作,可以控制算法按照编程者的意图工作。本文以string排序为例进行说明,首先是缺省的排序动作: vector<string> v{"This","is", "a", "predicate", "."};sort(v.begin(), v.end());for(auto s:v){    cout <

2018-06-04 21:23:03 782 3

Aduino UNO D1 R32 硬件包

Aduino UNO D1 R32开发环境构筑时使用的硬件开发包,包含2020年3月的最新文件: arduino-esp32-master.zip esptool-2.6.1-windows.zip mkspiffs-0.2.3-arduino-esp32-win32.zip xtensa-esp32-elf-win32-1.22.0-80-g6c4433a-5.2.0.zip

2020-03-15

多任务编程超入门-(11) 学以致用

多任务编程超入门-(11) 学以致用的示例工程,代码

2017-07-26

多任务编程超入门-(10) 线程同步,数据交换的序列图

多任务编程超入门-(10) 线程同步,数据交换的序列图

2017-07-23

多任务编程超入门-(9) 线程同步

多任务编程超入门-(9) 线程同步 示例代码,QT工程

2017-07-19

多任务编程超入门-(8) 递归互斥量

多任务编程超入门-(8) 递归互斥量 示例工程,代码

2017-07-17

多任务编程超入门-(5) 对症下药

多任务编程超入门-(5) 对症下药 示例代码

2017-07-11

多任务编程超入门-(4) 发生了什么? 示例代码

多任务编程超入门-(4) 发生了什么? 示例代码

2017-07-10

多任务编程超入门-(4) 发生了什么?

多任务编程超入门-(4) 发生了什么? 出现的QT工程文件,示例代码

2017-07-10

多任务编程超入门-(2) 线程协作的理想和现实 示例代码

多任务编程超入门-(2) 线程协作的理想和现实 示例代码

2017-07-09

Android函数计算器(含源码,测试工程)

原创Android环境下的计算器的源代码,工程文件 Android环境下的单元测试工程及源代码。

2011-12-18

Android歌词秀源代码及工程文件

Android歌词秀源的代码及工程文件。适用Android2.1以上系统

2011-11-27

Anroid歌词秀1.5版

Anroid歌词秀1.5版的安装包,下载后可直接安装在Android(版本2.1以上)上。

2011-11-27

Qt环境下开发的计算器源码

Qt环境下开发的计算器源码 支持三角函数,反三角函数,求和,平均值,乘方,开方,对数 当然还有包含嵌套的四则运算。

2011-10-14

Qt开发的计算器(可执行文件)

利用Qt开发的计算器的可执行文件。 可以直接在Widnows环境中执行。

2011-10-14

[Android应用开发记录-字幕播放器(5)完善]附属工程,源码

[Android应用开发记录-字幕播放器(5)完善]附属工程,源码 1.将操作按钮改成图标方式 2.有电话接入时暂停播放。 3.通过线控按钮控制播放,暂停,上一句歌词,下一句歌词功能。(Android2.2以上版本) 4.拔掉耳机线时自动暂停(Android2.2以上版本) 5.在【正在进行中】画面中表示启动用快捷方式 6.改善(没有解决)定位歌词不准确(选中的歌词的前面一段时间不能播放)

2011-09-07

Android应用开发记录-字幕播放器(5)完善附带工程,源码

Android应用开发记录-字幕播放器(5)完善附带工程,源码 1.将操作按钮改成图标方式 2.有电话接入时暂停播放。 3.通过线控按钮控制播放,暂停,上一句歌词,下一句歌词功能。(Android2.2以上版本) 4.拔掉耳机线时自动暂停(Android2.2以上版本) 5.在【正在进行中】画面中表示启动用快捷方式 6.改善(没有解决)定位歌词不准确(选中的歌词的前面一段时间不能播放)

2011-09-07

LyricPlayer类图

目前内容: LyricPlayer全体类图 SaftyTimer 类图第一版,持续更新中。

2011-09-04

LyricPlayer for Android 2.1

对软件进行如下变更后生成的安装文件。 将Android版本调整为2.1 按钮换成ImageButton 通过点击直接选择歌词播放

2011-09-03

Android应用开发记录-字幕播放器(4)完成

<<Android应用开发记录-字幕播放器(4)完成>>配合的工程文件,源码,用于动作确认的歌曲及歌词 另外,工程是针对Android2.2建立的。 如果想在Android2.1运行,可以修改工程文件或从下面地址下载针对2.1做的安装包,应该可以直接安装。 http://download.csdn.net/source/3571257

2011-08-28

Android应用开发记录-字幕播放器(3)工程包

用于【博客:Android应用开发记录-字幕播放器(3)使用的Service的音频播放器的】的工程文件及源码

2011-08-18

Android学习-字幕播放器(2)先来一个音频播放器

Android学习-字幕播放器(2)的工程和源代码

2011-08-13

Android小游戏-9宫格类图类图

Android小游戏-9宫格类图类图,配合源码、 请用EA(Enterprise Architect)打开

2011-08-11

Android下的原创小游戏-九宫格

为了学习Android,自己编了一个小游戏,就是9宫格。 功能: 1.自动分析可选数字。 2.Undo(用了Command设计模式) 3.支持自编题目。 内容: Andorid工程,源码

2011-08-10

空空如也

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

TA关注的人

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