Xshell及Vim中文乱码解决

首先要保证Linux本地语言设置,主要是LC_ALL的设置(该设置会覆盖其他设置),可以使用locale查看。临时修改使用export LC_ALL=”zh_CN.UTF-8″,永久修改需要修改文件/etc/profile增加或修改export LC_ALL=zh_CN.UTF-8,修改完后无需重启。

其次要保证Xshell的连接编码使用utf-8而非默认编码。最后设置vim修改~/.vimrc增加set fileencodings=utf-8,gbk一行

python技巧:逆序循环

Python可以很简单实现C语言中for(i = len; i>=0; –i)的逆序循环,而且有不止一种写法:

第一种,for i in range(len, -1, -1) ,简单易懂

第二种,for i in range(0, len+1)[::-1],利用list的[start:end:step]排序功能,当然在大数组下性能堪忧

为何线程互斥锁优于读写锁

尽管确实是在读多写少的情况下使用,但系统在测试中确实出现线程互斥锁优于读写锁的情况, muduo库中给出了多种互斥锁优于读写锁的原因: 1. 读锁加锁的开销不会比mutex小,因为它需要更新当前reader的数目,如果临界区很小,那么mutex往往更快。 实际上mutex是由整形变量及等待队列构成 2. 读锁可能提升为写锁,增大调试难度 实际上系统调试过程中的确出现过这样的问题,甚至导致死锁,当时 …

阅读全文

C++中的局部类与嵌套类

局部类指在函数内部定义的类,自然局部类不能含有static成员,所有函数定义也必须在定义体内完成。基本不会使用。

嵌套类指在类内部定义类,该类名只能在外围类中使用,嵌套类中的函数成员可以在定义体外定义(但是需要使用限定符以使用类名),嵌套类中申明的成员不是外围类对象的成员,反之亦然。

因此分析访问关系时,完全可以当做非嵌套类处理,即嵌套类无法访问外围类的私有成员,也不能对外围类中定义的私有嵌套类创建对象,嵌套类可以访问static private成员,嵌套类中申明的友元也不能访问外围类中的私有成员。