本篇根据各个公司的面试问的常见问题进行总结。
来源:公众号(c语言与cpp编程)
公众号回复“面试”,获取pdf答案
#ifdef、#else、#endif
和 #ifndef
的作用int 、bool、 float
、指针变量与 “零值”比较的 if
语句sizeof
和 strlen
的区别static
和 C++ 的关键字 static
有什么区别malloc
和 C++ 中的 new
有什么区别++i
和 i++
的区别volatile
有什么作用const
又是 volatile
吗a
和 &a
有什么区别strcpy、sprintf
与 memcpy
的区别(*(void (*)( ) )0)( )
的含义typedef
和 define
有什么区别0x67a9
的整型变量的值为 0xaa66
new/delete
与 malloc/free
的区别是什么extern“C”
struct
和 class
的区别cast
转换smart pointer
四个智能指针: shared_ptr,unique_ptr,weak_ptr,auto_ptr
的理解malloc
申请的内存能否通过 delete
释放?使用 new
申请的内存能否用 free
?String
类vector
的底层原理vector
中的 reserve
和 resize
的区别中的
size 和
capacity`的区别中
erase 方法与
algorithn 中的
remove`方法区别vector
迭代器失效的情况vector
的内存 (clear(), swap(), shrink_to_fit())
list
的底层原理vector
,什么情况下用 list
,什么情况下用 deque`priority_queue
的底层原理map 、set、multiset、multimap
的底层原理map
和 set
的插入删除效率比其他序列容器高map
和 set
每次 Insert
之后,以前保存的 iterator
不会失效?map
的 set
的查找速度会怎样变化?map 、set、multiset、multimap
的特点map
和 set
的插入删除效率比其他序列容器高,而且每次 insert
之后,以前保存的 iter
map
和 set
不能像 vector
一样有个 reserve
函数来预分配数据?set
的底层实现实现为什么不用哈希表而使用红黑树?hash_map
与 map
的区别?什么时候用 hash_map
,什么时候用 map
?STL
线程不安全的情况原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。