C/C++共113篇

面试题:C++ 中 define 和 const 的区别?

在 C++ 中,#define 和 const 都可以用于定义常量,但它们的实现方式、作用范围和使用场景有显著区别。以下是它们的详细对比: 1. #define 定义:#define 是预处理指令,...
程序百科的头像-程序百科程序百科37天前
03811

面试题:什么是 C++ 的运算符重载?

C++ 中的运算符重载(Operator Overloading)是一种允许用户自定义类类型对象的运算符行为的特性。通过运算符重载,可以使自定义类型的对象像内置类型一样使用运算符(如 +、-、*、/ 等)。 1. ...
程序百科的头像-程序百科程序百科37天前
0378

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

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

面试题:C++ 中模板的实现一定要写在头文件中吗?

在 C++ 中,模板的实现通常需要写在头文件中,这是因为模板的实例化机制与普通函数或类的编译方式不同。以下是详细解释: 1. 为什么模板的实现通常写在头文件中? 模板的实现通常需要放在头文件...
程序百科的头像-程序百科程序百科36天前
03715

面试题:C++ 中如何实现一个单例模式?

在 C++ 中,单例模式(Singleton Pattern)是一种设计模式,用于确保一个类只有一个实例,并提供一个全局访问点。以下是几种实现单例模式的常见方法: 1. 懒汉式(Lazy Initialization) 懒汉式...
程序百科的头像-程序百科程序百科36天前
03712

面试题:C++ 中 list 的使用场景?

在 C++ 中,std::list 是标准模板库(STL)提供的一种双向链表容器。它的特点是支持高效的插入和删除操作,但在随机访问方面性能较差。以下是 std::list 的主要特点和使用场景:...
程序百科的头像-程序百科程序百科37天前
03613

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

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

面试题:C++ 什么场景下用继承?什么场景下使用组合?

在C++中,继承和组合是两种不同的代码复用方式,适用于不同的场景。 1. 继承的使用场景 继承用于表示“is-a”关系,即子类是父类的一种特殊类型。继承适合以下场景: 代码复用:当多个类有共同...
程序百科的头像-程序百科程序百科36天前
03615

面试题:介绍 C++ 中三种智能指针的使用场景?

在 C++ 中,智能指针是用于自动管理动态内存的工具,可以避免内存泄漏和悬空指针等问题。 C++11 引入了三种主要的智能指针:std::unique_ptr、std::shared_ptr 和 std::weak_ptr。 以下是它们...
程序百科的头像-程序百科程序百科37天前
03513

面试题:请介绍一下 C++ 的返回值优化?

C++ 中的**返回值优化(Return Value Optimization, RVO)和命名返回值优化(Named Return Value Optimization, NRVO)**是编译器优化技术,用于减少临时对象的创建和拷贝,从而提高程序的性能...
程序百科的头像-程序百科程序百科36天前
0355