2007年5月8日
一般来说vector不适合做经常删除的容器,但是在某些情况下,我们确实需要删除vector的部分元素,一般的方式类为v.erase(remove_if(v.begin(), v.end(), func)).但是本人懒的把操做写到另一个函数中,下面是一个更好的办法
vector<int>::reverse_iterator rit = v.rbegin();
while (rit != v.rbegin())
{
if (func(*rit)) //检查是否需要删除
v.erase((++rit).base());
else
++rit;
}
其中reverse_iterator和iterator的关系与转换是关键,STL真是设计的强大.
2007年3月31日
使用VIM编写程序,发现切换头文件和代码文件很麻烦,发现一个好东西A.vim,具体使用参数如下:
A switches to the header file corresponding to the current file being edited (or vise versa)
:AS splits and switches
:AV vertical splits and switches
:AT new tab and switches
:AN cycles through matches
:IH switches to file under cursor
:IHS splits and switches
:IHV vertical splits and switches
:IHT new tab and switches
:IHN cycles through matches
<Leader>ih switches to file under cursor
<Leader>is switches to the alternate file of file under cursor (e.g. on <foo.h> switches to foo.cpp)
<Leader>ihn cycles through matches
下载地址如下:http://www.vim.org/scripts/script.php?script_id=31
下载后放到/usr/share/vim/vim61/plugin/就可以了,如果启动时候有错误,就下载一个老一点的版本.
indent是一个常用的Linux的C代码格式化工具,但是参数太多,很难记忆,目前发现一组参数,可以格式化为我常用的代码格式.
-bad -bap -bbb -bbo -nbc -bl -bli0 -bls -c33 -cd33 -ncdb -ncdw -nce -cli0 -cp33 -cs -d0 -nbfda -nfc1 -nfca -hnl -ip5 -l75 -l
p -pcs -nprs -saf -sai -saw -nsc -nsob -nss -i4 -ts4 -ut
保存在~/.indent.pro,就是默认的indent参数了.
2007年3月12日
从Google上发现了这个C++专门的Blog,发现很不错,有自己写的欲望了,申请了一下,今天开张,希望能记录一些经验,保存一些自己看到的比较好的文章.