排序
面试题:C++ 中 define 和 const 的区别?
在 C++ 中,#define 和 const 都可以用于定义常量,但它们的实现方式、作用范围和使用场景有显著区别。以下是它们的详细对比: 1. #define 定义:#define 是预处理指令,...
面试题:C++ 中 map 和 unordered_map 的区别?分别在什么场景下使用?
在 C++ 中,std::map 和 std::unordered_map 是两种常用的关联容器,用于存储键值对。它们的核心区别在于底层实现和性能特性,因此适用于不同的场景。 1. std::map 底层实...
面试题:C++ 如何实现线程池?给出大体思路?
实现一个线程池(Thread Pool)是 C++ 并发编程中的常见任务。线程池的核心思想是预先创建一组线程,并将任务分配给这些线程执行,从而避免频繁创建和销毁线程的开销。以下是实现线程池的大体思...
面试题:C++ 中 memcpy 和 memmove 有什么区别?
memcpy 和 memmove 是 C++ 中用于内存拷贝的两个标准库函数,它们的核心功能都是将一段内存的内容复制到另一段内存中。然而,它们之间有一个关键的区别,主要体现在内存重叠的处理上。 1. memcp...
面试题:C++ 中虚函数的原理?
在 C++ 中,虚函数(Virtual Function)是实现运行时多态(Runtime Polymorphism)的关键机制。它允许在基类中声明一个函数,并在派生类中重写该函数,从而通过基类指针或引用调用派生类的实现...
面试题:C++ 的栈溢出是什么?
栈溢出(Stack Overflow) 是程序运行时的一种错误,发生在调用栈(Call Stack)的内存空间被耗尽时。栈是用于存储函数调用信息(如局部变量、返回地址等)的内存区域,其大小是有限的。当程序...
面试题:C++ 中 lock_guard 和 unique_lock 的区别?
在 C++ 中,std::lock_guard 和 std::unique_lock 都是用于管理互斥锁(std::mutex)的 RAII 包装器,它们的主要目的是确保锁在作用域结束时自动释放,从而避免死锁或资源泄漏。...
面试题:C++ 中 volatile 关键字的作用?
在 C++ 中,volatile 关键字用于告诉编译器,被修饰的变量可能会被程序以外的因素(如硬件、多线程、信号处理等)修改,因此编译器不应对该变量进行优化(如缓存到寄存器或重排序访问顺序)。 1...
面试题:用过哪些 C++ 网络框架?都有什么优缺点?
在 C++ 开发中,网络框架是构建高性能网络应用的重要工具。以下是几种常见的 C++ 网络框架及其优缺点: 1. Boost.Asio 优点: 跨平台:支持 Windows、Linux、macOS 等平台。 高性能:基于事件驱...
面试题:C++ 中友元类和友元函数有什么作用?
在C++中,友元(Friend) 是一种机制,允许某个类或函数访问另一个类的私有(private)和保护(protected)成员。友元分为两种: 友元类(Friend Class) 友元函数(Friend Function) 1.&...