下午4点接到一个杭州打过来的电话,阿里巴巴一面。持续时间半个小时。

面试官是阿里云KVStore组。

1.自我介绍,说一下项目

说了下之前在公司做的手绘几何图形规整输出的项目,提了下当时遇到的问题,以及用到的解决方法。也说了下现在组里面在做的表情识别的项目。讲了8分钟的样子。

2.C++STL标准库里的知识

sort的时间复杂度。

这个好简单,O(NlogN),然后我补充了下sort是快排的思想,然后是不稳定的排序算法,是基于泛型编程的思想,除了支持基本的STL中的数据类型,还支持自定义的数据类型进行排序。传进去的是迭代器或者指针,直接操作的地址,然后支持重载,第三个参数可以重写cmp排序规则。

Vector的增长模式。

首先vector是一种顺序容器,动态数组,在声明的时候可以调用构造函数直接开辟一定大小连续的空间。当空间满的时候,重新申请一个2倍的空间,将原来的所有数据考呗过去。

Map底层

红黑树,比较复杂,和multimap的区别。

3.平常怎么调试代码,主要在那个平台

平常主要用vs,Windows下,用过mac下的clion。编译出错,先看是不是语法错误,如果是逻辑错我,通过打log、打断点,定位错误的地方调试。

4.内存泄漏的问题

我只答出了数组越界,指针作用域之外指向地址不明,变野指针,复杂度太高递归次数太多爆栈。答得不好,后来查了下,发现还有好多没说到,C++内存泄漏的几种情况

5.有了解C++的发展么

现在出到了C++17,上一个版本是C++14,17不了解,出了什么智能指针,方便管理内存。我用过的只有aotu关键字。

6.网络编程

问epoll和poll,最近在补,还没看到那块,说了下自己写的TCP的Socket编程,服务器端和客户端的业务逻辑。

7.Linux

同步互斥 文件加锁解锁,线程安全 猝。

我提问环节,让面试官介绍了下他所在部门主要做哪方面。

KVStore,做redis数据存储的,平常是在linux上对内核进行开发优化,也做一部分远程运维。

2017 阿里巴巴 C++后台开发一面 3.14的更多相关文章

  1. SpringBoot技术栈搭建个人博客【后台开发】

    前言:在之前,我们已经完成了项目的基本准备,那么就可以开始后台开发了,突然又想到一个问题,就是准备的时候只是设计了前台的RESTful APIs,但是后台管理我们同样也是需要API的,那么就在这一篇里 ...

  2. 【分享】Java后台开发精选知识图谱

    地址 引言: 学习一个新的技术时,其实不在于跟着某个教程敲出了几行.几百行代码,这样你最多只能知其然而不知其所以然,进步缓慢且深度有限,最重要的是一开始就对整个学习路线有宏观.简洁的认识,确定大的学习 ...

  3. ABP开发框架前后端开发系列---(14)基于Winform的ABP快速开发框架

    前面介绍了很多ABP系列的文章,一步一步的把我们日常开发中涉及到的Web API服务构建.登录日志和操作审计日志.字典管理模块.省份城市的信息维护.权限管理模块中的组织机构.用户.角色.权限.菜单等内 ...

  4. Java后台开发精选知识图谱

    1.引言: 学习一个新的技术时,其实不在于跟着某个教程敲出了几行.几百行代码,这样你最多只能知其然而不知其所以然,进步缓慢且深度有限,最重要的是一开始就对整个学习路线有宏观.简洁的认识,确定大的学习方 ...

  5. 后台开发:核心技术与应用实践 -- C++

    本书介绍的"后台开发"指的是"服务端的网络程序开发",从功能上可以具体描述为:服务器收到客户端发来的请求数据,解析请求数据后处理,最后返回结果. C++编程常用 ...

  6. 给大一的学弟学妹们培训java web的后台开发讨论班计划

    蓝旭工作室5月大一讨论班课程计划   课时 讨论班性质 讨论班名称 主要内容 主讲人   第一讲 先导课 后台开发工具的使用与MySQL数据库基础 后台开发工具的基本使用方法与工程的创建,MySQL数 ...

  7. discuz后台开发常用函数

    showsetting()表单显示 返回值:无 参数: $setname - 指定输出标题,如:setting_basic_bbname, 自动匹配描述文字为:setting_basic_bbname ...

  8. php后台开发(二)Laravel框架

    php后台开发(二)Laravel框架 为了提高后台的开发效率,往往需要选择一套适合自己的开发框架,因此,选择了功能比较完善的Laravel框架,仔细学来,感觉和Python语言的框架Django非常 ...

  9. php后台开发(一)hello world

    php后台开发(一)hello world 环境安装 开发环境为Ubuntu 12.04,选择linux+apache+php的开发环境 安装 apache2 sudo apt-get install ...

随机推荐

  1. 2 基于梯度的攻击——PGD

    PGD攻击原论文地址——https://arxiv.org/pdf/1706.06083.pdf 1.PGD攻击的原理 PGD(Project Gradient Descent)攻击是一种迭代攻击,可 ...

  2. DatePickerDialog与OnDateSetListener基本用法与常见问题

    日期时再显示更改控件一般我们使用构造方法public DatePickerDialog(@NonNull Context context, @Nullable OnDateSetListener li ...

  3. C语言中typedef,条件编译,结构体的说明

    目录 typedef (类型别名) 条件编译 条件编译在头文件包含中的应用 结构体 使用结构体定义新的结构体变量 结构体成员的引用与赋值 结构体指针及其引用 typedef (类型别名) typede ...

  4. Python学习【day01】- Python初识

    Python下载:https://www.python.org/downloads/ 下载后进行安装,安装后的Python我们称之为Python解析器 1.打印“Hello World” 安装后的Py ...

  5. js执行多次事件,而非一次

    晚上查阅了很多文章,都是避免点击事件多次执行.反过来要是让事件多次执行该如何做? 这里可以配个setTimeout():来执行 这里我们用layui <link rel="styles ...

  6. Python基础字符串前加u,r,b,f含义

    1.字符串前加 u 例:u"我是含有中文字符组成的字符串." 作用: 后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时 ...

  7. ps -ef

    status, msg = commands.getstatusoutput("ps -ef | grep start.sh | grep -Fv grep | awk '{print $1 ...

  8. 实现远程线程DLL注入

    ### 32位:远程线程注入 远程线程注入是最常用的一种注入技术,该技术利用的核心API是 `CreateRemoteThread()` 这个API可以运行远程线程,其次通过创建的线程调用 `Load ...

  9. Codeforces 1220E. Tourism

    传送门 这是一道英语题,首先要读懂题目: $\text{Alex believes that his trip will be interesting only if he will not use ...

  10. C# 面向对象8 值类型和引用类型

    值类型和引用类型 概念 示意图: 1.值类型,在栈中开辟一块空间,存储 2.引用类型,在堆中开辟一块空间,存储数据,然在栈中开辟一块空间存储堆中的数据的地址