档案日期2009的46

2009年11月16日 - 2009年11月22日

最后更新于 .

给大家贴一张vim的键位图。

其实这种图片在网上也是盛传了,但是我个人觉得用vim而不是学vim,就连vim的作者本人都不赞成为了学vim而学vim,所以这张图就拿来参考就好啦,就不要去背啦,要不然会累死的~~当然用的多了,你会发现其实里面大部分按键你居然都用过了!

另外说一下,由于win下的gvim用了兼容win操作的键映射,所以和下面这张图不是很一样,可以在vimrc中把模拟win的映射去掉,这样以后迁到linux下办公也方便~~

转载请注明出处.https://www.vimer.cn

最后更新于 .

    OK,继续我们的Vim正则查找替换系列~~,这一次主要有两个技巧,第一个是=的整理,第二个是vim实现固定区域的查找替换。     呃,不知道到底是带给我们的这个习惯了,似乎大家在写int a=1;的时候都喜欢在=左右都加上两个空格,编程int a = 1;但是有时候面对别人写的代码,并不是这样的风格就会很想帮他改一下,怎么办呢?vim呗~~     命令如下:    

:%s/\s*=\s*/ = /g

   

这样的话,vim就会自动帮你完成啦,当然看语句也能看出来,他是只要匹配到=就会帮你自动编程 = ,所以对于那些注释和字符串中的=也有可能帮你误转,笔者没有想到什么好的方法,你可以在g后面加个c,即    

:%s/\s*=\s*/ = /gc

   

这样每次替换都会要求你确认,呵呵,不过也有点麻烦哦……    

好啦,接下来是vim中的区域查找替换,vim这么强大的工具当然是支持只替换一部分文本啦,那么怎么实现呢?     ...

最后更新于 .

一.有关hash_map的使用
map中可以用 map.erase(it++)或者it = map.erase(it);来实现迭代删除
但是在hash_map中

iterator erase(iterator it);

这个函数声明和定义是不存在的
取而代之的是

void erase(iterator it);

但它本身也没有实现迭代删除
如果要迭代删除的话 还是要用 erase(it++)

二.localtime()的误用
localtime的函数声明如下:

struct tm *localtime(const time_t *timep);

而localtime的内部实现是一个static变量,所以,如果你这样调用:

time_t t1=time(NULL);
struct tm *p1=localtime(&t1);
sleep(10);
time_t t2=time(NULL ...

最后更新于 .

1, c语言中,结构体struct中不能包括函数的,而在C++中struct中可以包括函数。
2,C++中结构体和类可以通用,区别主要表现在访问控制方面:struct中默认是public,而 class中默认的是private。
3,构造函数最重要的作用是创建对象的本身,C++中每个类可以拥有多个构造函数,但必须至少有一个构造函数,当一个类中没有显式提供任何构造函数,C++编辑器自动提供一个默认的不带参数的构造函数,这个默认的构造函数只负责构造对象,不做任何初始化工作。但在一个类中只要自己定义一个构造函数,不管带参不带参,编辑器不再提供默认的不带参的构造函数了。构造函数没有返回值。
4,析构函数当一个对象生命周期结束时候被调用来回收对象占用的内存空间。一个类只需有一个析构函数。析构函数没有返回值也不的带参数。
5,析构函数的作用与构造函数相反,对象超出起作用范围对应的内存空间被系统收回,或被程序用delete删除的时候,对象的析构函数被调用。
6,函数的重载条件:函数的参数类型、个数不同,才能构成函数的重载。重载是发生在同一个类中。
7,类是抽象的,不占用具体物理内存,只有对象是实例化的,是占用具体物理内存的。
8,this指针是隐含指针,指向对象本身(this指针不是指向类的),代表了对象的地址。所有的对象调用的成员函数都是同一代码段,但每个对象都有自己的数据成员。当对象通过调用它的成员函数来访问它的数据成员的时候,成员函数除了接收实参外 ...

每日归档

上周

2009年度第 45 周

下周

2009年度第 47 周

归档