排序
面试题:C++ 的 strcpy 和 memcpy 有什么区别?
在C++中,strcpy 和 memcpy 是两个常用的函数,用于复制数据。尽管它们的功能相似,但在使用场景和行为上有显著的区别。 1. strcpy 定义:strcpy 是用于复制字符串的函数...
面试题:什么是内存对齐?为什么要内存对齐?
什么是内存对齐? 内存对齐是指数据在内存中的存储位置必须满足特定条件,通常是某个值的倍数(如 4 字节、8 字节等)。例如,一个 4 字节的整数通常需要存储在地址为 4 的倍数的位置。 为什么...
面试题:C++ 中 map 和 unordered_map 的区别?分别在什么场景下使用?
在 C++ 中,std::map 和 std::unordered_map 是两种常用的关联容器,用于存储键值对。它们的核心区别在于底层实现和性能特性,因此适用于不同的场景。 1. std::map 底层实...
面试题:C++ 中 static 的作用?什么场景下用到 static?
在 C++ 中,static 是一个关键字,具有多种用途,具体作用取决于它的使用场景。以下是 static 的主要作用和使用场景: 1. 静态局部变量 作用:在函数内部定义的静态局部变...
面试题:C++ 中命名空间有什么作用?如何使用?
在C++中,命名空间(Namespace) 是一种用于组织代码的机制,主要用于避免名称冲突(Name Collision)。命名空间将全局作用域划分为不同的区域,每个区域内的名称是唯一的,从而可以在不同...
面试题:什么是 C++ 的运算符重载?
C++ 中的运算符重载(Operator Overloading)是一种允许用户自定义类类型对象的运算符行为的特性。通过运算符重载,可以使自定义类型的对象像内置类型一样使用运算符(如 +、-、*、/ 等)。 1. ...
面试题:请介绍下 C++ 模板中的 SFINAE?它的原则是什么?
SFINAE(Substitution Failure Is Not An Error) 是C++模板编程中的一种重要机制,用于在模板实例化过程中根据类型的有效性选择不同的实现。SFINAE 的核心思想是:在模板参数推导过程中,如果...
面试题:C++ 中野指针和悬挂指针的区别?
野指针(Wild Pointer) 定义:野指针是指未初始化或指向已释放内存的指针,其值是随机的或无效的。 产生原因: 未初始化:指针声明后未赋值,指向随机地址。int* ptr; // 未初始化,ptr 是野指...
面试题:C++ 中 deque 的原理?它内部是如何实现的?
std::deque(双端队列,Double-Ended Queue)是 C++ 标准模板库(STL)中的一种序列容器,支持在两端高效地插入和删除元素。它的实现原理和内部结构是其高效性能的关键。 1. std::deque&nb...
面试题:C++11 中有哪些常用的新特性?
C++11 是 C++ 语言的一次重大更新,引入了许多新特性,极大地提升了代码的简洁性、安全性和性能。 以下是 C++11 中常用的新特性: 1. 自动类型推导(auto) 作用:编译器自动推导变量的类型。 ...