Notes

unix: adduser, 这个比较好,需要提示输入一堆信息,useradd 三无账户,无home, 无密码,无系统账户
优先选择adduser

vector有一个reserve是可以给vector设定一个较大的capacity容量的,使得以后push_back时候避免较多的元素搬移。

看李沐的MLSS, 里面有个spartse matrix的存储和二分查找,默认index是sorted,才意识到其实二分 STL肯定也有的,之前都自己实现,但是他实现的版本其实和基本的有一些差别,这三个一起配套使用
binary_search lower_bound upper_bound

bool binary_search(first, last, val, comp) comp不写,默认是递增,
我在想,如何返回找到的index呢?原来里面其实是调用lower_bound,所以直接lower_bound就可以了。

iterator lower_bound(first, last, val, comp) comp不写,默认是递增,
注意lower_bound定义:返回左到右第一个(等价于index最小)>=x的iterator,本质是修改版的二分,所以和binary_search的返回值配套就可以知道找到(返回mid),和没找到返回>x的最小的index

iterator upper_bound(first, last, val, comp) comp不写,默认是递增,
注意upper_bound定义:返回第一个<x的iterator,binary_search没有调用这个,但是本质是修改版的二分

今天听别人说有就地归并,于是瞬间长知识了
http://www.ahathinking.com/archives/103.html#more-103

绝对经典位运算求绝对值:
int i=a>>31;
return (a^i)-i;

正数i=0,最后还是a
负数i=-1,32bit 1, 最后相当于a取反加1,正好是对应的正值。

一直以为string::getline函数参数是这样的

istream& getline (istream& is, string& str, char delim=’\n’);

后来才发现是这样两个函数重载

istream& getline (istream& is, string& str, char delim);
istream& getline (istream& is, string& str);\读到\n结束

感觉两种设计似乎是一样的。

Posted by richard爱闹 - 7月 29 2014
如需转载,请注明: 本文来自 Richard