Pegasus' Blog
保持一颗好奇心

谈情商

看了戈尔曼写的的《情感智商》,受到不少启发。一直都是一个情商很低的人,表现在不善交际、自我情绪管理不好等方面。之前低情商一直给我带来一些人际和情绪方面的困扰,这本书也给出了一些答案。


####什么是情商?
戈尔曼在这本书中提到了关于情商的五个方面:

  1. 了解自我。自我觉知:当某种情绪刚一出现时便能察觉乃情感智商的核心。监控情绪时时刻刻变化的能力是自我理解与心理领悟力的基础对。对自我的情绪有更大的把握性就能更好地指导自己的人生,更准确地决策婚姻、职业之类。
  2. 管理自我。调控自我的情绪,使之适时适地适度。这种能力建立在自我觉知的基础上。是如何有效摆脱焦虑、沮丧、激怒、烦恼等因失败而产生的消极情绪侵袭的能 力。这一能力的低下将使人总是陷于痛苦情绪的漩涡中;反之,这一能力高者可从人生的挫折和失败中迅速跳出,重整旗鼓,迎头赶上。
  3. 自我激励。服从于某目标而调动、指挥情绪的能力。要想集中注意力、自我激励、自我把握、发挥创造性, 这一能力必不可少。任何方面的成功都必需有情绪的自我控制,延迟满足,压抑冲动。能够自我激励,积极热情地投入,才能保证取得杰出的成就。具备这种能力的人,无论从事什么行业都更有效率、更富于成效。
  4. 识别他人情绪。移情,是在情感的自我觉知基础上发展起来的又一种能力,是最基本的人际关系能力。具有移情能力的人能通过细微的社会信号,敏锐地感受到他 人的需求与欲望。这一能力更能满足如照料、教育、销售或管理职业类的要求。
  5. 处理人际关系。大体而言,人际关系艺术就是调控与他人的情绪反应的技巧。人际关系能力可强化一个人的受社会欢迎程度、领导权威、人际互动的效能等。擅长处理人际关系者,凭借与他人的和谐关系即可事事顺利,他们也就是所谓社会明星。

仔细反思了一下,发现之前无论是自我觉知还是人际处理,没有能做好的。自我管理做不好容易导致悲观、焦虑等情绪,人际关系不和谐会有强烈的孤独感,而自我激励水平低则很难从负面情绪中恢复出来。低情商无疑会严重影响一个人的幸福感。

lambda表达式

c++

##c++中的lambda表达式


#####什么是lambda表达式
c++中,一个lambda表达式表示一个可调用的代码单元。可以将其理解为一个未命名的内联函数。与函数类似,一个lambda具有一个返回类型、一个参数列表、和一个函数体。但lambda可以定义在函数内部。一个lambda表达式具有如下形式:
[capture list](parameter list) -> return type { function body }
capture list(捕获列表)是一个lambda所在函数中定义的局部变量的列表(通常为空);parameter list, return type和function body和任何普通函数一样,分别表示参数列表、返回类型和函数体。与普通函数不同,lambda必须使用尾置返回来指定返回类型。

拖延心理学

不少人都有拖延的毛病,考试临时抱佛脚,作业放到最后一晚做,项目延期等等。拖延不光是时间管理的问题,也不仅仅是习惯的问题,它涉及到人深层次的内心世界,所以改变起来有一定困难。


####拖延的根源

  • 拖延的情绪根源涉及内心感受、恐惧、希望、记忆、梦想、怀疑以及压力。但是很多拖延者并不能识别所有这些活跃于表面现象之下的情绪波动,因为他们利用拖延来逃避不舒服的感受。
  • 拖延的生物根源包括你的身体、大脑以及你的遗传基因。在你大脑中发生的事情,会影响到你会回避什么样的感受,而你所回避的(或者你所没有回避的),会影响到你大脑的结构和功能。因为这种“神经可塑性”,大脑始终在变化,所以你的生物倾向性并不一定会对你的个人发展构成阻碍。
  • 拖延的另一个根源,是拖延者与时间的纠葛。拖延者常常以一种“期望式思维”来看待时间,或者他们常常将时间看做一个需要制服和取胜的对手。这种对待时间的态度激发了更多的拖延。
  • 拖延的人际关系根源,主要指你的家庭背景和社会关系,以及你在当今社会的地位。你在以往的家庭关系中所受到的影响,很可能会在你的生活中延续下去,并可能在维护你的拖延倾向中起到了一定的作用。对自己在社会角色和文化角色上的忧虑或许也是构成你拖延习性的一个因素,要知道,它会影响到你的自我感觉以及人际关系。

c\c++内存分配方式

c++
c++, c

####内存分配方式
内存分配方式有三种:

  1. 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。
  2. 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
  3. 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由程序员决定,使用非常灵活,但如果在堆上分配了空间,就有责任回收它,否则运行的程序会出现内存泄漏,频繁地分配和释放不同大小的堆空间将会产生堆内碎块。

Linux/Unix用valgrind检测内存泄漏

c\c++编程中,内存管理是比较头疼的问题,一不小心就会造成内存泄漏,除了养成良好的编程习惯外(使用智能指针等),使用工具也能帮助检测内存泄漏,valgrind是Unix\Linux下一款不错的工具。(mac下暂时有bug)


#####Valgrind 安装

  1. www.valgrind.org下载最新版valgrind-3.2.3.tar.bz2
  2. 解压安装包:tar –jxvf valgrind-3.2.3.tar.bz2
  3. 解压后生成目录valgrind-3.2.3
  4. cd valgrind-3.2.3
  5. 运行./autogen.sh设置环境(需要标准的autoconf工具)(可选)
  6. ./configure;配置Valgrind,生成MakeFile文件,具体参数信息详见INSTALL文件。一般只需要设置—prefix=/where/you/want/it/installed
  7. Make;编译Valgrind
  8. make install;安装Valgrind

ubuntu 直接用命令 sudo apt-get install valgrind安装
Valgrind包含的工具
Valgrind支持很多工具:memcheck,addrcheck,cachegrind,Massif,helgrind和Callgrind等。在运行Valgrind时,你必须指明想用的工具,如果省略工具名,默认运行memcheck。

为什么c++不提倡使用宏#define

c++
c++

C++ 的书上常说,尽量不要用 #define 来定义常量。这究竟是为什么呢?
其实 C++ 并不仅仅不提倡用宏来定义常量,而且还不提倡用宏来定义“函数”。事实上 C++ 并不是很喜欢预处理宏,在很多很多方面,如果不是必需,尽量不要使用预处理宏。

Linux库的创建和使用

####Linux库的概念
库是一种软件组建技术,里面封装了数据和函数,提供给用户程序调用。使用库可以使程序模块化,提高编译速度,实现代码重用,易于升级。Windows系统提供了大量静态链接库(.lib)和动态链接库(.dll)文件。在Linux中,库文件放在/usr/lib或/lib目录下,Linux库文件名由前缀lib,库名以及后缀三部分组成,动态库以.so作为后缀,静态库以.a作为后缀。

char *s VS char s[]

c++
c++, c

可能有些人不会注意二者的区别,举几个例子说明.

c语言不用变量交换两个数分析

c++
c

首先看这样一个程序

1
int a, b;
a = a + b;
b = a - b;    //此时b = (a + b) - b = a;     (经过第一步a为a+b)
a = a - b;    //此时a = (a + b) - a = b;  (经过第二步时b已为a)

为什么void main()是错的!

c++
c++, c

很多人甚至市面上的一些书籍,都使用了void main( ),其实这是错误的。C/C++中从来没有定义过void main( )。C++之父Bjarne Stroustrup在他的主页上的FAQ中明确地写着

The definition void main( ) { / … / } is not and never has been C++, nor has it even been C.