排序
面试题:C++ 中 map 和 unordered_map 的区别?分别在什么场景下使用?
在 C++ 中,std::map 和 std::unordered_map 是两种常用的关联容器,用于存储键值对。它们的核心区别在于底层实现和性能特性,因此适用于不同的场景。 1. std::map 底层实...
面试题:C++ 中 list 的使用场景?
在 C++ 中,std::list 是标准模板库(STL)提供的一种双向链表容器。它的特点是支持高效的插入和删除操作,但在随机访问方面性能较差。以下是 std::list 的主要特点和使用场景:...
面试题:什么是 C++ 中的 RAII?它的使用场景?
RAII(Resource Acquisition Is Initialization,资源获取即初始化)是 C++ 中的一种重要编程范式,核心思想是将资源的生命周期与对象的生命周期绑定。通过对象的构造函数获取资源,通过析构函...
面试题:C++ 中 lock_guard 和 unique_lock 的区别?
在 C++ 中,std::lock_guard 和 std::unique_lock 都是用于管理互斥锁(std::mutex)的 RAII 包装器,它们的主要目的是确保锁在作用域结束时自动释放,从而避免死锁或资源泄漏。...
面试题:C++ 中 thread 的 join 和 detach 的区别?
在 C++ 中,std::thread 提供了两种管理线程生命周期的方式:join() 和 detach()。它们的核心区别在于线程的执行与主线程的关系以及资源的释放方式。 1. join() 功能: 阻...
面试题:C++ 中 jthread 和 thread 的区别?
在 C++20 中引入了 std::jthread,它是 std::thread 的增强版本,主要区别在于 std::jthread 提供了更安全和更方便的线程管理功能,特别是自动线程回收和协作中断支持...
面试题:C++ 中 memcpy 和 memmove 有什么区别?
memcpy 和 memmove 是 C++ 中用于内存拷贝的两个标准库函数,它们的核心功能都是将一段内存的内容复制到另一段内存中。然而,它们之间有一个关键的区别,主要体现在内存重叠的处理上。 1. memcp...
面试题:C++ 的 function、bind、lambda 都在什么场景下会用到?
在C++中,function、bind和lambda是用于处理函数对象和回调的强大工具,各自有不同的应用场景。 1. std::function std::function 是一个通用的函数包装器,可以存储、复制和调用任何可调用对象...
面试题:请介绍 C++ 中使用模板的优缺点?
在C++中,模板(Template) 是一种强大的工具,用于实现泛型编程。它允许编写与类型无关的代码,从而提高代码的复用性和灵活性。然而,模板也有一些缺点。以下是使用模板的优缺点: 1. 优点 (1...
面试题:C++ 中函数模板和类模板有什么区别?
在C++中,函数模板(Function Template) 和 类模板(Class Template) 是模板编程的两个核心概念。它们的主要区别在于用途和实例化方式。以下是它们的详细区别: 1. 函数模板(Function Templa...