摘要: 找到性能瓶颈 二八法则适合很多事物:最重要的只占其中一小部分,约20%,其余80%的尽管是多数,却是次要的。在程序代码中也是一样,决定应用性能的就那20%的代码(甚至更少)。因此优化实践中,我们将精力集中优化那20%最耗时的代码上,这那20%的代码就是程序的性能瓶颈,主要针对这部分代码进行优化。 常 阅读全文
posted @ 2017-11-22 14:24 ye_ming 阅读(10749) 评论(1) 推荐(2) 编辑
摘要: 版权声明:本文为博主原创文章,未经博主允许不得转载。 前一阵写项目,终于将这个boost下的xml读取类完成了,由于网上对property_trees的讲解很少,最多也就到get_child这个层面,所以我写起来很困难,前前后后用了两个星期左右吧,后来发现property_trees要是用好了操作特 阅读全文
posted @ 2017-06-26 22:24 ye_ming 阅读(3208) 评论(0) 推荐(0) 编辑
摘要: CWinApp::OnIdlevirtual BOOL OnIdle( LONG lCount );返回值: 如果要接收更多的空闲处理时间,则返回非零值;如果不需要更多的空闲时间则返回0。参数: lCount 该参数是一个计数值,当应用程序的消息队列为空,OnIdle函数被调用时,该计数值就增加1。 阅读全文
posted @ 2019-01-06 11:46 ye_ming 阅读(641) 评论(0) 推荐(0) 编辑
摘要: https://blog.csdn.net/thecoldone/article/details/50759044 C++中数组作为形参传递给函数时把数组视为指针,并没有将数组的长度信息传递给函数,因而在函数中稍有不慎就会造成数组内存的越界访问。为了避免这个问题,下面根据书上给的内容做了一点总结和说 阅读全文
posted @ 2018-09-06 15:44 ye_ming 阅读(545) 评论(0) 推荐(0) 编辑
摘要: 套接字 套接字指通信双方在通信时所使用的通信点(Endpoint),通信的双方通过通信点来交换信息和数据。不同类型的通信会使用不同的类型通信点,比如对于电话通信而言,通信点就是电话号码和分机号码的组合,这时因为如果你想和朋友通话,就需要拨打你朋友的电话号码和分机号码。对于IP网络通信而言,通信点就是 阅读全文
posted @ 2018-08-01 21:20 ye_ming 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://blog.csdn.NET/xubin341719/article/details/7091583/ 最近不是太忙,整理些东西,工作也许用得到。 1,为什么要用到链表 数组作为存放同类数据的集合,给我们在程序设计时带来很多的方便,增加了灵活性。但数组也同样存在一些弊病。如数组的 阅读全文
posted @ 2018-07-31 16:04 ye_ming 阅读(859) 评论(0) 推荐(0) 编辑
摘要: 单链表的结构有多种 这里介绍的链表有头结点、有尾节点并且尾节点指向头结点 单链表的每个结点的地址存放在其直接前驱结点的指针域中。其中第一个结点没有前驱结点,因此需要一个头指针指向第一个节点,便于我们对整个链表进行操作;这里的单链表的最后一个节点的指针域存放的是头结点的地址。 单链表不能随意存取,必要 阅读全文
posted @ 2018-07-28 18:15 ye_ming 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 可以看到i是拷贝值,j是引用值,所以是24,结果26 把lambda表达式当作参数传送 把lambda表达式当作参数传送 lambda表达式嵌套使用 lambda表达式嵌套使用 ambda表达式使用在高阶函数里 ambda表达式使用在高阶函数里 阅读全文
posted @ 2018-07-22 18:51 ye_ming 阅读(508) 评论(0) 推荐(0) 编辑
摘要: 为什么要lambda函数 匿名函数是许多编程语言都支持的概念,有函数体,没有函数名。1958年,lisp首先采用匿名函数,匿名函数最常用的是作为回调函数的值。正因为有这样的需求,c++引入了lambda 函数,你可以在你的源码中内联一个lambda函数,这就使得创建快速的,一次性的函数变得简单了。例 阅读全文
posted @ 2018-07-14 21:16 ye_ming 阅读(13083) 评论(0) 推荐(2) 编辑
摘要: volatile作用: 作为指令关键字,确保本条指令不会受到编译器的优化而省略,而且要求每次直接读值。 定义: volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进 阅读全文
posted @ 2018-07-13 17:25 ye_ming 阅读(402) 评论(0) 推荐(0) 编辑
摘要: 最近闲来无事,翻阅msdn,在预编译指令中,翻阅到#pragma pack这个预处理指令,这个预处理指令为结构体内存对齐指令,偶然发现还有另外的内存对齐指令aligns(C++11),__declspec(align(#))(Microsoft专用),遂去探究两者之间的不同点。 1、#pragma 阅读全文
posted @ 2018-07-13 16:33 ye_ming 阅读(1854) 评论(0) 推荐(0) 编辑
摘要: 1 基本语法 decltype 类型说明符生成指定表达式的类型。在此过程中,编译器分析表达式并得到它的类型,却不实际计算表达式的值。 语法为: 编译器使用下列规则来确定expression 参数的类型。 如果 expression 参数是标识符或类成员访问,则 decltype(expression 阅读全文
posted @ 2018-07-13 14:21 ye_ming 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 一. 什么是拷贝构造函数 首先对于普通类型的对象来说,它们之间的复制是很简单的,例如: 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 运行程序,屏幕输出100。从以上代码的运行结果可以看出,系统为对象 B 分配了内存并完成了与对象 A 的复制 阅读全文
posted @ 2018-07-12 16:57 ye_ming 阅读(428) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-07-12 15:52 ye_ming 阅读(0) 评论(0) 推荐(0) 编辑
摘要: C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。 重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同。 当您调用一个重载函数或重载运算符时,编译器通过把您所使用的参数类型与定义中的参数类型进行比较 阅读全文
posted @ 2018-07-12 11:00 ye_ming 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 数据抽象是指,只向外界提供关键信息,并隐藏其后台的实现细节,即只表现必要的信息而不呈现细节。 数据抽象是一种依赖于接口和实现分离的编程(设计)技术。 让我们举一个现实生活中的真实例子,比如一台电视机,您可以打开和关闭、切换频道、调整音量、添加外部组件(如喇叭、录像机、DVD 播放器),但是您不知道它 阅读全文
posted @ 2018-07-12 10:22 ye_ming 阅读(482) 评论(0) 推荐(0) 编辑
摘要: 我觉得学完虚函数和存虚函数应该趁热看看接口是怎么实现的,因为怎么说,他们都是一个东西。 接口描述了类的行为和功能,而不需要完成类的特定实现。 C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念。 如果类中至少有一个函数被声明为纯虚函数,则这个 阅读全文
posted @ 2018-07-12 09:05 ye_ming 阅读(243) 评论(0) 推荐(0) 编辑