个人面试后的感想500字 面试总结怎么写( 三 )


9.举一个STL中容器的例子
答:比如vector(当时是答案) , vector的实现实际上封装了一个动态数组 , 有三个内部迭代器 , 分别是start、finnish和end_of_storage 。如果通过push_back或insert插入元素超过了容量 , 此时容量将扩展到2倍 。这个过程包括:重新配置 , 移动副本元素 , 释放原空空间 , 支持随机访问 。
10.一种算法 , 例如STL
答:比如find , accumulate , next _ displacement , unique , position等等 。
11.如何防止c++头文件被重复引用?
答:你也可以使用ifndef或program once 。但是它们之间也有一些不同 。兼容性方面 , ifndfe更好 , 部分老编译器可能不支持program once 。另外 , ifndef还可以识别两个名称不同 , 但内容相同的头文件 , 防止重复 , program once就不行了 。
12.内联函数和宏的区别
答:内联函数的扩展发生在编译时 , 而宏是在预处理阶段 。内联函数本身是函数 , 宏不是 。最重要的一点:内联函数会检查参数的类型 , 而宏只是简单的替换 , 所以内联函数更安全 , 所以宏经常需要把参数括起来 , 但不一定安全 。内联函数有自己明确的作用域或访问权限 , 比如类中的private , 但宏没有 。
13.linux下的常用命令
答:(1)ls -al显示当前目录下的所有文件目录信息 , 包括隐藏的 。
(2)mkdir创建一个文件夹
(3)猫查看文件内容
(4)cp副本
(5)rm -rf删除文件(文件夹)下的所有文件
(6)找到文件
(7)grep正则匹配
(8)pwd显示当前文件路径
(9)ln创建文件连接-s软连接
(10)chmod修改文件权限
(11)netstat -a |grep检查网络状态
(12)顶部
14.linux下与进程管理相关的命令
(1)ps -e检查所有进程信息 。
(2)kill -9 pid强行杀死进程 。
(3)top -p pid检查过程信息
15.linux下如何检查内存和磁盘
(1)顶部
(2)df
(3)免费
16.什么是软链接和硬链接 , 它们的区别是什么?
硬链接以文件拷贝引用的形式存在 , 与源文件具有相同的inode节点;软连接以路径的形式存在 , 其inode节点对应的数据块存储源文件的路径 。它们的区别在于 , 软链接可以跨文件系统创建 , 目录可以创建 , 但硬链接不能 。所以相对来说 , 软链接更灵活 , 删除软链接不会有什么影响 。但是如果删除了源文件 , 所有的软链接都会失效 , 所以和windows下的快捷方式很像 。
17.什么是相对路径和绝对路径?
答:绝对路径以/开头 , 因为它代表从根目录开始的路径 , 相反的是相对路径 。
18.流程之间如何沟通?
答:无名管道 , 知名管道FIFO , 消息队列 , 共享内存 , 信号量 , socket等 。(应该简单描述一下 。
19.c++下如何调用C的包?
答:extern“C”通知编译器其包含的代码是C模式编译的 , 这样连接时不会报错 , 否则找不到函数符号 。
20.命令找出去掉重量后的数字 。
$ sort test.txt | uniq
21、套接字编程tcp客户端连接过程
设置套接字对象、连接、读/写
22socket编程tcp服务器端连接过程
建立套接字对象 , 绑定 , 监听 , 接受 , 读/写
23.epoll和select有什么区别?
答:select can支持的文件描述符数量有限 , 最大数量为1 , 024 。每次调用前 , 都要把它监控的读集、写集、错误集从用户态复制到内核态 , 返回后再复制回来 。而且select返回的时候 , 返回的是所有的文件描述符 , 也就是说一旦触发了一个事件 , 就只能通过遍历来找出是哪个事件 , 效率很低 , 开销也很大 。
Epoll可以支持大量的文件描述符 , 可能有数万个 。其高效性由红黑树、双向链表和回调函数三部分组成 。每一次监听事件被复制到内核 , 都存储在红黑树中 , 红黑树是作为EventPoll的结构存在的 。如果有相应的事件发生 , 就会触发相应的回调函数 , 然后将事件复制到双向链表中并返回 。而且Epoll总是用事件返回事件 , 而不是一直返回 , 所以效率更高 。总的来说 , epoll适用于连接多 , 活动少的场景 , select适用于连接少 , 但大部分是活动的场景 。


推荐阅读