自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 滴滴出行 2017 软件开发 面试

滴滴出行2017软件开发面试滴滴出行2017软件开发面试流程各种吐槽网申 笔试面试总结流程网申笔试面试各种吐槽猿猿作为一个拥有工作经验的应届生,面试过近百号人了,各种场景下都不会太紧张(阿里面除外)。所以如果读者觉得博主太牛啦,一点也没有代表性,那就对了~~ 吐槽完自己之后,吐槽一下didi。作为互联网方向仅次于BAT的超级独角兽,整个流程下来就是各种混乱。网申无通知,面试长时

2016-09-28 22:52:20 4797

转载 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 5812

原创 阿里算法实习生面试回忆

阿里算法实习生面试回忆前言从本科毕业到现在,经历过的面试至少也超过半百了。自己也做过面试官,算是两方面都有体会了。但是从未面试过大公司的背景,让我感觉面试之前还是有点心虚。电话面试阿里的HR效率还是很高的,前一天投出的简历(网申),第二天傍晚就有回应了。既然那么迅速,自己也高效点呗,当场决定开始电面。电面分为5个大类的内容: 1. C++语法。什么是多态,重载和重写的区别,虚表里存的是什么(这个没

2016-03-21 20:45:02 3620

翻译 EM 17:考虑对move代价低的参数采用值传递

EM 17:考虑对move 代价低的参数采用值传递某些函数在通常情况下会对参数进行复制操作。set 函数就是很好的例子。set 函数通常对保存在对象内的变量 进行赋值。这类函数要想得到最高的效率,如果传入参数为左值类型,则调用复制;如果传入参数为右值类型,则调用移动 :class Widget{public: void setName(const std::string& newName

2016-03-20 15:25:28 404

原创 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 602

原创 有关刷题与做工程的异同

声明:这篇只写给自己看,我相信很多人和我有不同的看法。最近刷了一下ACM题,简单的难的都有。对于题目本身而言,没有什么好讲的,基本偏重于数据结构和算法方面。不同基础的人收获也不一样,猿猿只是拿来保持手感而已。我想说的是这些题目的评判标准与软件工程的异同点。首先说说相同部分:效率、以及代码简短。这部分应该是所有码农都努力追求的方向。在实际问题下,空间和时间并总是一个矛盾体,有

2015-06-16 10:25:00 441

原创 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 401

原创 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 629

原创 修剪vector中过剩容量的方法

一句话vector(contestants).swap(contestants);其中contestants为capacity很大,但是size很小的vector。这里先用copy ctor创建了一个临时对象,然后和contestants交换。之后编译器会自动释放原来那个大capacity的vector堆,此时contestants就是一个大小合适的vector了。

2015-02-11 16:52:41 373

原创 模板类中定义模板函数

用模板类和模板函数是C++程序猿必须掌握的技能。然而要充分运用编译器的推导能力则不简单。需求:建立一个表格类, 每一列的类型可以任意指定(编译期指定),每一行的元素可以任意指定(运行期确定)。列数可变(编译期指定),行数可变(运行期确定)。这里特意强调了编译期和运行期,就是为了最大程度利用编译器的推导能力,进行编译期计算,以达到(接近)最高效率。So, let‘

2015-02-10 20:44:11 1022

原创 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 495

原创 c++11中的lambda表达式

介绍lambda表达式的文章有很多,这里不是讲怎么用,而是讲为什么要用。想象一个场景:最常见的操作就是要遍历一个容器(数组、vector、list……),然后对每个元素进行特定操作。for(auto iter = array.begin(); iter != array.end(); ++iter){ // do something}程序猿都是懒惰的,每次都要敲一个fo

2015-01-30 22:27:15 283

原创 *(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 1248

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除