图森未来 linux 应用 一面

自我介绍,项目介绍

项目一点都没问

  1. 进程、线程的区别
  2. C++ 和 C 的区别
  3. C++的多态是怎么实现的,运行时多态和编译时多态,虚函数和纯虚函数
  4. C++ 的智能指针, shared_ptr, unique_ptr, weak_ptr 各自有什么特点, 为什么会有 weak_ptr
  5. STL 的map 和 set 有什么特点,是怎样实现的,红黑树是怎样实现的,红黑树有哪些应用
  6. 左值和右值
  7. 网络模型(七层和四层)
  8. tcp 和 udp 的区别,tcp 的三次握手和四次挥手,
  9. tcpdump工作在那一层, ping 工作在那一层
  10. MTU 和 MSS, 以太网的 MTU 为什么是 1500, MSS 为什么是 1460
  11. 路由器和交换机的区别

做题

实现一个支持多线程的循环队列,其中包括:

Init:资源初始化,循环队列的最大长度max_size。

push_back:将元素放到队列尾。

pop_front:将队列首元素弹出。

batch_remove:从队列首开始移除指定数量的元素,如果队列长度小于给定数量则清空队列。

要求队列实现时使用循环队列的方式,空间占用为O(n)。


C:
bool init();
bool uninit();
bool push_back(int item); //插入元素到循环队列尾部
bool pop_front(); //弹出循环队列的头部元素
void batch_remove(unsigned int count);




C++:
class CircularQueue {
public:
~ CircularQueue();
CircularQueue(unsigned int max_size);
bool push_back(int item);
bool pop_front();
void batch_remove(unsigned int count);
};
#面经##图森未来#
全部评论
请问是实习还是春招
点赞 回复 分享
发布于 2022-02-25 15:50
感觉题目还是很基础的
点赞 回复 分享
发布于 2022-03-02 21:27
图森好喜欢考队列题
点赞 回复 分享
发布于 2022-12-06 18:47 吉林

相关推荐

听说改名字就能收到offer哈:Radis写错了兄弟
点赞 评论 收藏
分享
7 50 评论
分享
牛客网
牛客企业服务