8 cqu20093154

尚未进行身份认证

暂无相关描述

等级
TA的排名 6w+

新博客地址

新的博客地址,访问请戳!!!点我

2015-09-22 12:17:47

智能指针shared_ptr

今天复习了一下智能指针,然后动了动脑子,恍然觉得以前并没有真正的理解智能指针。首先是shared_ptr,shared_ptr的作用就不做介绍了。那么shared_ptr是如何实现的呢?    我分析了一下,智能指针的要点就是“计数”和“指针”。所以智能指针的成员变量中就必须有计数值和对象指针。指针计数为零的时候自动销毁,所以析构函数中需要实现计数和对象销毁的功能。然后还要注意的就是复制构造函数

2015-09-19 12:45:56

都是头文件的循环包含惹的祸

首先我们先建立一个项目,项目文件有:A.hB.hC.hA.cppB.cppC.cpp 文件内容如下:A.h#ifndefEVENTHANDLER_CEVENTHANDLER_H_HEADER_INCLUDED_BA392BB6#defineEVENTHANDLER_CEVENTHANDLER_H_HEADE

2015-09-11 16:23:40

谈谈闭包

我第一次听说“闭包”这个概念是在学习Lua的时候。由于此前并没有接触到函数式编程的语言,所以满脑子C/C++的思维方式的我被“闭包”困惑了很久。我找到了一个比较通俗的闭包定义:如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure)。Lua的学习资料上一般都会有一个这样关于闭包的例子:functionnew_counter()

2015-09-09 14:48:43

node.js和websocket实现echo

最近在学习node.js,其中一章讲了WebSocket相关的内容。我看的书是《了不起的node.js》。这本书中实现了一个echo例子,但是我照书上做的程序却出现了错误。书中使用了express和websocket.io实现的这个例子。然而例子的express版本还是古老的2.5.1,最新的已经是4..了,所以出了问题也不奇怪。    书中的服务器代码片段大概是这样的:varexpress

2015-08-28 17:08:04

多核程序设计——缓存一致性协议MESI

MESI协议    在MP系统中,每个CPU都有自己独立的cache,缓存之间的一致性很很容易受到破坏的,所以缓存一致性协议就应运而生了。MESI是一种使用非常广泛的缓存一致性协议。    MESI存在”modified”,”exclusive”,”shared”和”invalid”四种状态,协议可以在一个指定的缓存中应用这四种状态。因此,协议在每一个缓存行中维护一个两位的状态”tag”,这个”ta

2015-07-16 12:30:29

多核程序设计——存储模型

最近在看《现代体系结构上的UNIX系统——内核程序员的SMP和Caching技术》,这里抄点东西作为笔记吧!    顺序存储模型强制存储器操作(load和store)都按照程序次序来执行,即这些指令是按照在随程序执行的指令流中出现的顺序次序来执行的。它也指定了,由不同处理器完成的load和store操作也要以某种顺序、但又是非确定性的方式排序。这种存储模型应该是大家最容易理解的,甚至都认为实际M

2015-07-14 10:35:45

(转)VC运行库MD /MDd /MT /MTd /ML /MLd

VC编译选项-多线程(/MT)-多线程调试(/MTd)-多线程DLL(/MD)-多线程调试DLL(/MDd)C运行时库库文件-Singlethread(staticlink)MLlibc.lib-Deb

2015-04-29 22:12:33

杂感

在赛场上,如果第一球就进了,这当然是很好的。如果不进,我还有接近全场的时间的拼搏。不想失败,就不要害怕失败。明确自己的目标,放弃次要的东西,虚荣,享受。。沉醉于过去或者寄希望于非利益相关方都是危险的。

2015-04-29 10:45:56

关于熵的一些理解

对于理工科学生来说,“熵”并不是一个陌生的名词。在诸如“大学物理”“热力学”和“信息论”等课程中都会有所介绍。但同时“熵”又是一个显得有点神秘的概念,看不见也摸不着。我最早是在高中物理课中听说的,大概是在介绍“热力学第二定律”时提到的。热力学第二定律的内容是:热力学过程是不可逆的——孤立系统自发地朝着热力学平衡方向──最大熵状态──演化。    然后真正的对这个名词有所理解是在学习《工程热力学》

2015-04-27 21:52:59

编程之美15-彩色的树

看第一眼以为这个题不好做,把过多的时间浪费在第二题上了。《彩色的树》这题是一个顶点染色的问题,用点dfs去不断染色,然后记录子树的个数就好,题目的内容如下:    给定一棵n个节点的树,节点编号为1,2,…,n。树中有n-1条边,任意两个节点间恰好有一条路径。这是一棵彩色的树,每个节点恰好可以染一种颜色。初始时,所有节点的颜色都为0。现在需要实现两种操作:改变节点x的颜色为y;

2015-04-25 16:54:10

记面试first blood

严格说来,今天是我的第一次职业方面的面试。第一次总是令人影响深刻,从结果上来说的确如此。    首先是由于自己的误操作,把面试预约取消了,然后就再也没法预约了。这直接导致我的面试顺序调到了所有人之后。这意味着我从上午十点等到了晚上七点,才最终等到了面试。    面试的前十分钟是闲聊,然后面试官看了一眼我的简历,说了句“一页呀!”。然后直接给了说让我写段程序,实现的功能是:求出一个

2015-04-20 23:01:27

Full Binary Tree(GCJ2014 round1A PB)

去年googlecodejam第一轮的B题,我没有想明白,也没有找到题解。没有办法,就去下载了大神的代码来看看。感觉差距好大,别人用十分钟不到就做出来了。题目的描述如下,我就不写翻译了,题意挺明了的。由于墙的原因,我还是把题目贴下面吧!题目内容Atreeisaconnectedgraphwithnocycles.Arootedtreeisatreeinwhich

2015-04-10 14:13:31

我的心太乱

以前一直没有在博客上写过非技术的东西,但是我却是一个脑袋闲不住的人。最近,我的神经是比较紧张的,原因是很多方面的。时间是一个最重要的因素,转眼间研二都快过完了,自己却仍然碌碌无为。前面去找兼职,竟然被几个非常平庸的人鄙视了。当然也不能怪他们,我确实和他们的路子对不上。说实话,小公司不一定比大公司容易进。他们需要的是熟练工,他们不会管你的理论基础,知识素养。现在在实验室,我非常的闲,这也是我“努

2015-04-08 10:20:13

字符串存储位置的疑问

字符串的存储位置到底在哪儿?按照我以前编汇编代码的经验,字符串肯定是放在数据段。但是在C/C++中,这个却不一定成立吧!昨天晚上跟群里的同学讨论,我们观点不太一样,他认为应该直接存在函数的栈空间。我可以肯定字符串常量会放在数据段,但是对字符数组我确实不太确定了。所以就分别在VC和GCC下试了试,看了个简单程序的反汇编代码。首先看看VC的吧:#include"string.h"#include"

2015-03-16 14:04:09

MySQL服务器连接过程分析

mysqld是MySQL服务器端主进程,可以说mysqld是MySQL的真正核心,一切工作都是围绕mysqld进程进行的。所以要解剖mysql这个庞然大物,mysqld的代码是最好的突破口。    一切都是从熟悉的main()函数开始的,其实是从mysqld_main()函数开始的。这些代码都在mysqld.cc。mysqld_main()随后调用了win_main)()。win_main

2015-03-15 16:09:35

MySQL中innodb引擎分析(初始化)

MySQL的存储引擎是以插件形式工作的,这应该是MySQL的一大特色了吧!根据《深入理解MySQL》的内容,5.1版本时存储引擎的插件化都还不是彻底,确切的说是刚添加的特性。为MySQL添加一个存储引擎时,需要更改一些上层代码,零散的更改本来就有点麻烦,同时工程也要重新编译一次。我听别人说,已经可以不改C/C++代码就直接添加引擎了。这样的话,折腾存储引擎的话就更方便了!这段代码来自ha_inno

2015-03-15 10:34:14

C++RTTI小总结

RTTI算是C++的一大特性之一了,但也是一个不太好懂的特性。以前一直没有理解清楚RTTI。通过最近的学习,似乎掌握了一点皮毛,这里做一个小总结。首先是《C++编程思想》上的一个例子,由于缺头文件,我把容器改成了vector。#include#include#include#include#include//forsrand()andrand()usingnam

2015-03-03 22:26:36

C语言错误处理

学习C++的时候就没有怎么重视异常这部分知识,后来知道也基本没有看到C++项目里面用try/catch的。google编程规范中甚至直接说明不使用C++这个特性,所以我一直都没搞明白这个“简单的”try/catch。    查阅《C++编程思想》,我记录以下一些内容。首先是C语言的一些错误处理方法。    1)出错信息可通过函数的返回值获得。如果函数返回值不能用,则可设置

2015-03-02 17:00:44

C++异常机制的实现方式和开销分析

C++异常机制的实现方式和开销分析白杨http://baiy.cn 在我几年前开始写《C++编码规范与指导》一文时,就已经规划着要加入这样一篇讨论C++异常机制的文章了。没想到时隔几年以后才有机会把这个尾巴补完:-)。还是那句开场白:“在恰当的场合使用恰当的特性”对每个称职的C++程序员来说都是一个基本标准。想要做到这点,就必须要了解语言中每个特性的实现

2015-03-02 16:39:49

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!