今天面试了一家上海做游戏公司的实习生。
一、C++基础
1、C++ STL容器有用过哪些?
(我回答用过vector,map和multimap,其实当时有点小紧张,就说了这三个,而map也没具体怎么用,只是知道),
2、map和multimap的区别和联系
(被坑了,我说两者都是键值对形式,而multimap可以一个键对应多个值。而后面试官就问我是多个键还是多个值,被这么一问,我心里就犯嘀咕了,到底是多个键呢还是多个值呢(我真是菜鸟啊,大家勿喷)),最后还是心虚的回答说是多个值。最后面试官还追问有没有接触过其他容器,我当时想了想,就说没了,用的最多的是vector(但是他就偏偏不问vector容器,⊙﹏⊙b汗)
正确回答:
1、map是一个键对应一个实例,而multimap是一个键对应多个实例。
2、map和multimap的操作大致一样,不同在于multimap允许有相同的key在容器中存在。map不能有重复的键值对,即如果插入键相同的键值对,则将覆盖掉同键值的键值对。
3、int型数据在内存中占用多少字节,分配占用方式?
(我的回答:int型占用4个字节(32位),64位占用8个字节,在内存中分配要看系统是大端模式还是小端模式,小端模式内存中是高字节在前,低字节在后分配)
4、指针在32位和64位机子中各占用多少字节?
(迟疑了一下,心想会不会和int型一样呢?我的回答:都占用4个字节(我都不知道自己是什么勇气说出来的,就是瞎猜))
正确答案看这里。
二、项目相关
1、最近做的一个项目,介绍你在其中的任务。
(吧啦吧啦一通,都被说烂了的项目。由于有用到TCP通信,就问我是自己写的通信协议还是有通信库的,我就说是采用C++ BOOST中的asio库的(顿时觉得高大上),然后问了下是否多线程,asio是否支持多线程,数据报文的格式,传输是文本形式还是二进制形式,如何解析的...)
2、问我有什么想问的?
主要问了下公司目前做什么的,以及实习生做什么工作。
最后,等电话通知(不知道有没有通知,擦,上次就连宁波IBM都没电话通知,害我等了一个星期!好歹你也是个挂着IBM的大公司啊,太不人性了)