- 博客(13)
- 收藏
- 关注
原创 滴滴出行 2017 软件开发 面试
滴滴出行2017软件开发面试滴滴出行2017软件开发面试流程各种吐槽网申 笔试面试总结流程网申笔试面试各种吐槽猿猿作为一个拥有工作经验的应届生,面试过近百号人了,各种场景下都不会太紧张(阿里面除外)。所以如果读者觉得博主太牛啦,一点也没有代表性,那就对了~~ 吐槽完自己之后,吐槽一下didi。作为互联网方向仅次于BAT的超级独角兽,整个流程下来就是各种混乱。网申无通知,面试长时
2016-09-28 22:52:20
4883
转载 Ubuntu 16.04 vim 报错: required vim compiled with +python
由于ubuntu 16.04 中的vim仅支持python3, 因此若要支持python2, 需要安装其它包(vim-nox-py2)。stackoverflow中没有见到有效信息,相关信息在这里
2016-04-24 21:33:25
5878
原创 阿里算法实习生面试回忆
阿里算法实习生面试回忆前言从本科毕业到现在,经历过的面试至少也超过半百了。自己也做过面试官,算是两方面都有体会了。但是从未面试过大公司的背景,让我感觉面试之前还是有点心虚。电话面试阿里的HR效率还是很高的,前一天投出的简历(网申),第二天傍晚就有回应了。既然那么迅速,自己也高效点呗,当场决定开始电面。电面分为5个大类的内容: 1. C++语法。什么是多态,重载和重写的区别,虚表里存的是什么(这个没
2016-03-21 20:45:02
3691
翻译 EM 17:考虑对move代价低的参数采用值传递
EM 17:考虑对move 代价低的参数采用值传递某些函数在通常情况下会对参数进行复制操作。set 函数就是很好的例子。set 函数通常对保存在对象内的变量 进行赋值。这类函数要想得到最高的效率,如果传入参数为左值类型,则调用复制;如果传入参数为右值类型,则调用移动 :class Widget{public: void setName(const std::string& newName
2016-03-20 15:25:28
459
原创 g++ 5编译链接lib时遇到的问题
科研需要,搞一个MASCOT的api用。从官网上下载后,按照教程输入命令:g++ -m64 -D__LINUX64__ -I../include resfile_peptidesum.cpp -L../lib -lmsparserahh!报了一大堆链接错误:resfile_peptidesum.cpp:(.text+0x1a0): undefined reference to `mat
2016-01-06 11:08:52
655
原创 有关刷题与做工程的异同
声明:这篇只写给自己看,我相信很多人和我有不同的看法。最近刷了一下ACM题,简单的难的都有。对于题目本身而言,没有什么好讲的,基本偏重于数据结构和算法方面。不同基础的人收获也不一样,猿猿只是拿来保持手感而已。我想说的是这些题目的评判标准与软件工程的异同点。首先说说相同部分:效率、以及代码简短。这部分应该是所有码农都努力追求的方向。在实际问题下,空间和时间并总是一个矛盾体,有
2015-06-16 10:25:00
505
原创 C++11 FAQ 中随机数生成器
头文件是, 这个别忘记了。另外一般还会用到bind函数,用以简写,所以包括头文件也是必须的。既然看不懂FAQ,那就直接抄大神的代码吧!#include #include #include #include using namespace std;default_random_engine re;normal_distributionint> nd(31, 8);a
2015-03-11 20:15:24
441
原创 C++11中的final关键词
阅读stroustrup网站中对于C++11的FAQ,其中有final关键词。猿猿立刻就想到了一道非主流的面试题:如何创建一个不能被继承的类?先看“先进生产力的代表”C++11(猿猿有点落伍了,现在还在学习11标准,sigh~~),so easy!class A{public: virtual ~A() final;};那回到以前的标准上,又该
2015-03-08 11:01:25
655
原创 修剪vector中过剩容量的方法
一句话vector(contestants).swap(contestants);其中contestants为capacity很大,但是size很小的vector。这里先用copy ctor创建了一个临时对象,然后和contestants交换。之后编译器会自动释放原来那个大capacity的vector堆,此时contestants就是一个大小合适的vector了。
2015-02-11 16:52:41
407
原创 模板类中定义模板函数
用模板类和模板函数是C++程序猿必须掌握的技能。然而要充分运用编译器的推导能力则不简单。需求:建立一个表格类, 每一列的类型可以任意指定(编译期指定),每一行的元素可以任意指定(运行期确定)。列数可变(编译期指定),行数可变(运行期确定)。这里特意强调了编译期和运行期,就是为了最大程度利用编译器的推导能力,进行编译期计算,以达到(接近)最高效率。So, let‘
2015-02-10 20:44:11
1094
原创 stl中remove和remove_if的陷阱
写程序时遇到这样一个需求: 将map容器中的特定值删除。很容易就想到了remove_if。remove_if(myMap.begin(), myMap.end(), myCmpfn());后来发现compile error。那就换最原始的写法,不用remove_if。for(auto it = myMap.begin; it != myMap.end(); ){
2015-02-03 21:18:57
584
原创 c++11中的lambda表达式
介绍lambda表达式的文章有很多,这里不是讲怎么用,而是讲为什么要用。想象一个场景:最常见的操作就是要遍历一个容器(数组、vector、list……),然后对每个元素进行特定操作。for(auto iter = array.begin(); iter != array.end(); ++iter){ // do something}程序猿都是懒惰的,每次都要敲一个fo
2015-01-30 22:27:15
308
原创 *(char**) 与 (char*) 的区别
斯坦福大学公开课中讲到用C语言实现泛型的linear search。其中的比较函数为void (*cmpfn)(void* vp1, void* vp2)。那么,如果是比较两个字符串数组,该如何写这个比较函数呢?一般思路都没啥神奇的地方,将void* 类型转换成想要的类型,然后已知类型的比较就可以了。void str_comp(void* vp1, void* vp2){
2015-01-25 14:01:42
1348
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人