C++ BIND原理

转自:bind原理图释

1,bind 可以用来将用户提供的需要一个参数的函数转换成不需要参数的函数对象。绑定的值(在这个例子中是123)存储在函数对象内并且会被自动传递给用户指定的函数:

C++11中的RAII

啥是RAII

按理说,您要是了解lambda的话,没有理由不知道RAII,但是小麦还是先提一下吧,为了本文的完整性嘛。RAII,Resource Acqueision Is Initialization,也就是资源获取即初始化。也就是说,在控制资源的声明周期的时候,在某个对象初始化(构造)的时候获取资源,而在对象销毁的时候(析构的时候释放资源。这一技术被广泛的使用在mutex中,典型的代码如下。

这就是你没有良师益友的原因

有一个古老的禅道心印讲述了一位剑术大师如何帮助一位新手的故事。

“我大概需要多久能够成为像你那样的大师?” 学生问。

“大约十年,” 大师回答说。

“我没有那么长久的耐心,” 学生说。“我想快点。如果我特别努力,而且全力以赴地投入其中,需要多久可以达成目标?”

C++ 线程安全的单例模式

一、懒汉模式

即第一次调用该类实例的时候才产生一个新的该类实例,并在以后仅返回此实例。

需要用锁,来保证其线程安全性:原因:多个线程可能进入判断是否已经存在实例的if语句,从而non thread safety。

孔乙己之 C++ 版

欧欧匹代码的格局,是和别的编程模式不同的:首先要有一个构造函数;基类里只定义了函数的形式,可以随时通过派生增加不同的实现。那些程序员们,每每学会了继承和多态,便可以接一个项目,——这是十年前的事,现在至少要懂得设计模式,——靠柜台外站着,写些代码换一个鸡蛋灌饼吃;倘若懂一些多线程的知识,便可以在鸡蛋灌饼里加火腿肠,或者里脊了,如果懂得语言的实现原理,那就能做一些底层代码的优化,换一盘炒菜。但这些程序员,多是初级水平,大抵没有这样深入。只有懂得内存模型的,才能接一些底层的项目,打开调试器和剖析器,慢慢的坐着优化代码。

TCP/IP 之 大明王朝邮差

大明王朝天启四年, 清晨。

天色刚蒙蒙亮,我就赶着装满货物的马车来到了南城门, 这里是集中处理货物的地方 , 一队一队的马车都来到这里, 城头的士兵带着头盔,身披盔甲, 手持长枪, 虎视眈眈的注视这下面的动静。

不给钱还想要员工免费努力加班

有一天,我正逛 LinkedIn,发现了一个感兴趣的文章标题,《为什么我的员工工作不能再努力一点?》,出于好奇,我点开了。发现这是一个类似于 Dear Abby 之类的公司。一个网名为 Victoria 的 CEO 向 Liz Ryan 询问了一个问题,Liz Ryan 即充当着 Abby 的角色。

倒序输出字符串中的单词

【问 题】 将一个字符数组中的单词顺序反转,要求不借助其它字符数组或者指针链表,保存反转后的字符数组,单词间以空格分隔。

【思 路】 先将字符数组全部反转,“This is a test”–> “tset a si sihT”, 再将单词逐个反转,最后得到要求的数组。

一次谷歌面试趣事

很多年前我进入硅谷人才市场,当时是想找一份高级工程师的职位。如果你有一段时间没有面试过,根据经验,有个非常有用的提醒你应该接受,就是:你往往会在 前几次面试中的什么地方犯一些错误。简单而言就是,不要首先去你梦想的公司里面试。面试中有多如牛毛的应该注意的问题,你可能全部忘记了,所以,先去几个 不太重要的公司里面试,它们会在这些方面对你起教育(再教育)作用。

为什么我们程序员写不出好代码

每个开发者在编码时,都希望代码像水管的水一样源源不断的流出,思绪不被打断。但在现实开发中,经常会由于一些事情突然中止或停下。本文就总结了现实工作中,影响编码进度的15个“拦路虎”。