自我介绍,有什么项目
1.一道快慢指针的题,判断是否是环形链表(要运行的)
class Solution { public: bool hasCycle(ListNode *head) { ListNode * fast = head; ListNode * slow = head; while(fast && fast->next->next){ fast = fast->next->next; slow = slow->next; if(slow==fast){ return false; } } return true; }
2. vector扩容怎么做?
复制到一个2倍内存的地方,释放原来的vector
3. 虚函数有什么作用?
父类析构虚函数,子类的析构函数才能调用,才不会造成内存泄漏
4. 如何防止内存溢出?
new就delete, 还有delete[];
在Linux 中输入命令 valgrind ./.out文件 查看内存是否泄漏
5. linux 进程之间如何通讯?
消息队列,管道,套接字,信号量
6. 谈谈消息队列。
发送消息,信息队列缓存,读取消息。我熟的是管道,有匿名管道,同一个祖先才能使用通讯,一端读,一端写,因为共享了文件描述符。而命名管道就可以满足不是同一个祖先的通讯
7. 2个栈怎么实现队列功能?
把数据push到栈1里,把栈1的数据按照先进后出全放到栈2里,然后读栈2,就是队列
全部评论
(1) 回帖