EMC campus

unique_copy居然不知道,还是看了别人的,不过这个和自己裸写one-pass应该会差很多。

然后排序大数据,居然没有想到分支的思想,实在有点惭愧啊。就是先一遍将其分区,然后分别排序,最后
merge理论上来说会快很多的。

胡瀚森大神提到用java的treeset,似乎还没用过,只知道Collections.sort。这个算法可以去重复的同时排序,非常好用。

还记得某华师软院同学说处理大整数还可以用数据库的位率,好像不太熟悉这个概念,以为只有string可以。

http://blog.csdn.net/kaiwii/article/details/7990261

另外还有群里提到的set_intersection 可以处理集合的交集,同时返回集合的并集。

rand()函数似乎返回0-RAND_MAX, 这是lib一个常量,一般编译器里都是32767,致使随机数的范围比较局限,因此将其扩展范围需要用

(int)((double)rand()/RAND_MAX)*N)) 则可以扩成为0-N之间的任何数。

scanf 参数列表里 %d,表示signed decimal %u 表示 unsigned decimal,输入的时候%f 表示float,%lf表示double, 但是printf的时候%f 表示这两个。因为
printf里面没有lf这个参数列表

今天写的代码出现了几个bug

removerepeated算法思想上没有bug,但是用vector处理最后要resize,vector在处理数组删除的时候一般不用erase函数,效率太低。

然后还有多路merge,一定要记住最后要处理多出的一路没有merge的数组。

另外还有一点要注意,vector的front()和back() 都是return reference类型,这样那位微博童鞋的代码才可以vec.front()=vec.front->next; 假设vector vec;
当然都可以用vec[0] vec[vec.size()-1]代替

其实删除堆顶,然后插入一个元素,就是直接pop_heap push_heap来实现的,因为pop_heap 会留着最后一个元素,

今天看到一个学妹写的C++11的auto,之前一直只知道局部自动变量的缺省关键字,现在可以作为一种系统可以自动识别变量类型的关键字,在遍历容器的时候最方便,因为这种一般
只在循环里面迭代器用到,然后不用去写一个那么长的东西,直接auto就可以了,其他地方如果变量类型比较长都可以的。类似于JS里面的var

应学妹要求,今天又回顾了下虚函数,记得fawkes大神总是强调Java所有方法默认都是虚函数。

虚函数就是默认会继承给派生类的函数,如果有重载的话就用自己重新定义的,没有就调用父类的。这还可以保证如果用指针的话也不会出错,百科里有个比较好的例子

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