C++ 进阶面试题共47篇

面试题:介绍下 socket 的多路复用?epoll 有哪些优点?

Socket 的多路复用 多路复用(Multiplexing)是一种允许单个线程同时监控多个文件描述符(如 Socket)的技术。通过多路复用,程序可以在一个线程中高效地处理多个 I/O 操作,而不需要为每个连接...
程序百科的头像-程序百科程序百科35天前
03914

面试题:C++ 中 vector 的 push_back 和 emplace_back 有什么区别?

push_back 和 emplace_back 是 C++ 中 std::vector 的两个成员函数,用于向容器末尾添加元素。它们的核心区别在于如何构造元素以及性能优化。 1. push_back 功能...
程序百科的头像-程序百科程序百科35天前
03714

面试题:C++ 的迭代器和指针有什么区别?

C++ 中的迭代器(Iterator)和指针(Pointer)在某些方面非常相似,但它们的设计目的和使用场景有所不同。以下是它们的区别: 1. 设计目的 指针: 指针是 C/C++ 中的一种原生数据类型,用...
程序百科的头像-程序百科程序百科35天前
04014

面试题:C++ 中未初始化和已初始化的全局变量放在哪里?全局变量定义在头文件中有什么问题?

C++ 中未初始化和已初始化的全局变量放在哪里? 在 C++ 中,全局变量(包括未初始化和已初始化的)的存储位置取决于它们的初始化状态: 已初始化的全局变量: 存储在数据段(Data Segment)中的...
程序百科的头像-程序百科程序百科35天前
02612

面试题:请介绍下std::sort的原理?底层是快速排序吗?

std::sort 是 C++ 标准库中用于对容器(如 std::vector、std::array 等)或范围进行排序的算法。它的实现原理和底层排序算法并不是固定的快速排序,而是一种混合排序算法,结合...
程序百科的头像-程序百科程序百科35天前
03615

面试题: C++ 函数调用的原理是什么?什么是栈帧?

C++ 函数调用的原理 在C++中,函数调用的原理涉及以下几个关键步骤: 参数传递: 调用函数时,参数按顺序压入栈中(从右到左或从左到右,取决于调用约定)。 如果参数是对象,可能会调用拷贝构...
程序百科的头像-程序百科程序百科35天前
0287

面试题:C++ new操作的背后都经历了什么?

在C++中,new操作符用于动态分配内存并构造对象。它的背后经历了一系列步骤,包括内存分配、对象构造以及可能的异常处理。以下是new操作的详细过程: 1. 内存分配 new操作符首先调用operator ne...
程序百科的头像-程序百科程序百科45天前
03915