2024开发算法岗技术面经containing各大互联网

开发算法岗八股技术实战面经containing各大互联网

这份面经是笔者从3月初开始面试到五月初的所有公司的经典面视问题和答案的总结,这里分享一下。有了这份面经,只能说乱杀好吧,是包赢的!剩下做好准备起飞,芜湖!
下个月笔者会更新记录自己的实习过程,想了解的可以关注一下,为秋招做准备。
当然,现在笔者身处公司学习加班(今天本来是休息的),祝各位过期的小朋友节日快乐呐!

new和malloc的区别?
语法:
new 是 C++ 中的运算符,用于动态分配内存并调用对象的构造函数来初始化内存。malloc 是 C 和 C++ 中的函数,用于分配指定大小的内存块,但不会调用对象的构造函数。
类型安全:
new 是类型安全的,它会根据分配的类型来确定所需的内存大小,并返回正确类型的指针。malloc 返回的是 void* 类型的指针,需要手动进行类型转换,容易出错。
构造函数:
new 在分配内存后会调用对象的构造函数,用于初始化对象。
malloc 只是分配了内存空间,不会调用对象的构造函数,需要手动初始化对象。
返回值:
new 返回指向动态分配的对象的指针。
malloc 返回指向动态分配的内存块的指针。
释放内存:
delete 用于释放由 new 分配的内存,并调用对象的析构函数。
free 用于释放由 malloc 分配的内存。

C++里面适合查找的数据结构 ?
std::map 和 std::unordered_map:
std::map 是一个基于红黑树实现的关联容器,它提供了对键值对进行有序存储和快速查找的功能。
std::unordered_map 是一个基于哈希表实现的关联容器,它提供了快速的插入、删除和查找操作,但不保持元素的顺序。

std::set 和 std::unordered_set:
std::set 是一个基于红黑树实现的有序集合,它保持元素的顺序并提供快速的查找操作。
std::unordered_set 是一个基于哈希表实现的无序集合,它提供了快速的插入、删除和查找操作。

std::multimap 和 std::unordered_multimap:
std::multimap 和 std::unordered_multimap 是允许重复键的关联容器,它们提供了对键值对进行存储和查找的功能。
std::set 和 std::unordered_set 的多重映射:

如果你需要存储多个相同键对应的值,你可以使用 std::multiset 和 std::unordered_multiset,它们允许重复元素的存在。
std::vector 和 std::deque:如果你需要根据索引来查找元素,可以使用 std::vector 或 std::deque,它们提供了快速的随机访问功能。但需要注意,查找操作的时间复杂度为 O(1),而插入和删除操作的时间复杂度为 O(n)。

For 里面写成了死循环,对cpu有什么影响?

for 循环是一种常用的循环结构,如果循环条件没有被正确设置,可能会导致死循环,即循环永远不会结束。这样的死循环会导致 CPU 不断地执行循环体内的代码,占用 CPU 资源,并且可能会导致程序的崩溃或系统的不稳定。
具体对 CPU 的影响取决于死循环中的代码,如果循环体内有大量的计算或者 I/O 操作,那么 CPU 使用率会很高,系统可能会变得非常缓慢ÿ

  • 13
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

原创小白变怪兽

帮助原创小白成为怪兽吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值