排序
面试题:C++ 中数组和指针的区别?
在 C++ 中,数组和指针是两个密切相关的概念,但它们有着本质的区别。以下是它们的详细对比: 1. 定义 数组: 数组是一个连续的内存块,用于存储相同类型的多个元素。 数组的大小在编译时...
面试题:什么是 C++ 中的 RAII?它的使用场景?
RAII(Resource Acquisition Is Initialization,资源获取即初始化)是 C++ 中的一种重要编程范式,核心思想是将资源的生命周期与对象的生命周期绑定。通过对象的构造函数获取资源,通过析构函...
面试题:C++ 的 function、bind、lambda 都在什么场景下会用到?
在C++中,function、bind和lambda是用于处理函数对象和回调的强大工具,各自有不同的应用场景。 1. std::function std::function 是一个通用的函数包装器,可以存储、复制和调用任何可调用对象...
面试题:C++ 中 memcpy 和 memmove 有什么区别?
memcpy 和 memmove 是 C++ 中用于内存拷贝的两个标准库函数,它们的核心功能都是将一段内存的内容复制到另一段内存中。然而,它们之间有一个关键的区别,主要体现在内存重叠的处理上。 1. memcp...
面试题:什么是 C++ 的左值和右值?有什么区别?
在 C++ 中,左值(Lvalue)和右值(Rvalue)是表达式的两种基本分类,它们的主要区别在于值类别(Value Category)和生命周期。理解左值和右值是掌握 C++ 中移动语义、完美转发等高级特性的基础...
面试题:C++ 中 struct 和 union 的区别?如何使用 union 做优化?
在 C++ 中,struct 和 union 都是用于定义复合数据类型的工具,但它们的用途和行为有显著区别。以下是它们的区别以及如何使用 union 进行优化。 1. struct 和 union 的区别 特性structunion内存...
面试题:请介绍下 C++ 模板中的 SFINAE?它的原则是什么?
SFINAE(Substitution Failure Is Not An Error) 是C++模板编程中的一种重要机制,用于在模板实例化过程中根据类型的有效性选择不同的实现。SFINAE 的核心思想是:在模板参数推导过程中,如果...
面试题:C++ 中 enum 和 enum class 的区别?
在 C++ 中,enum 和 enum class 都用于定义枚举类型,但它们有显著的区别,主要体现在作用域、类型安全和隐式转换方面。 1. 作用域(Scope) enum(传统枚举): 枚举值是暴露在枚举类型所在的...
面试题:C++ 中 lock_guard 和 unique_lock 的区别?
在 C++ 中,std::lock_guard 和 std::unique_lock 都是用于管理互斥锁(std::mutex)的 RAII 包装器,它们的主要目的是确保锁在作用域结束时自动释放,从而避免死锁或资源泄漏。...
面试题:C++ 中 const 的作用?谈谈你对 const 的理解?
在 C++ 中,const 是一个关键字,用于定义常量或限制变量、函数、指针等的修改行为。它的主要作用是增强代码的安全性、可读性和可维护性。以下是 const 的详细作用和使用场景: 1. 定义常量 作...