news 2026/5/8 13:06:39

【C/C++刷题集】类和对象算法题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【C/C++刷题集】类和对象算法题

【C/C++刷题集】类和对象专题
(常见面试 + OJ 高频考点)

以下题目从简单到较难排列,覆盖了C++类与对象最核心的考察点,建议按照顺序刷,刷完基本能应对90%的“类和对象”相关面试题和OJ题目。

难度题号题目名称核心考察点推荐练习平台重要指数
1实现一个简单的复数类基本成员、构造函数、运算符重载基础牛客/洛谷★★★★
2实现字符串类(简版string)深拷贝、析构、拷贝构造、赋值运算符LeetCode/牛客★★★★★
★★3单例模式(多种实现方式对比)静态成员、线程安全、饿汉/懒汉、Meyers版各种面试★★★★★
★★4RAII实现智能指针(简版unique_ptr)析构函数、资源管理、移动语义面试/OJ★★★★★
★★5实现一个可以链式调用的StringBuilder返回引用、this指针牛客/面试★★★★
★★★6实现一个线程安全的计数器类mutable、mutable、std::mutex面试★★★★
★★★7实现一个简单的vector(动态数组)内存管理、扩容、移动构造、异常安全面试/高频★★★★★
★★★8实现shared_ptr(简版,含引用计数)引用计数、弱引用基础、自定义删除器面试核心★★★★★
★★★★9用C++实现一个简单的对象池静态成员、双向链表/自由链表、RAII游戏开发/高频★★★★
★★★★10实现一个能统计对象创建/销毁次数的类静态成员、构造/析构/拷贝/移动全家桶理解对象生命周期★★★★
★★★★11实现一个不允许拷贝的类(禁用拷贝构造+赋值)=delete、private拷贝构造C++11特性★★★
★★★★12使用CRTP实现静态多态的基类接口CRTP、模板、静态分派高级/模板元编程★★★★
★★★★★13实现一个带迭代器的简易容器(像vector)迭代器模式、begin()/end()、const迭代器非常高频★★★★★
★★★★★14实现一个支持move语义的String类移动构造、移动赋值、std::moveC++11核心★★★★★

推荐刷题顺序(不同目标不同路径)

目标:快速过基础面试 + 校招(1-3周)

1 → 2 → 3 → 5 → 10 → 11 → 4 → 14

目标:中高级/大厂算法岗/想真正搞懂C++(1.5-3个月)

1 → 2 → 10 → 3 → 4 → 14 → 7 → 8 → 13 → 12 → 9

目标:游戏开发/高性能/嵌入式方向(更偏底层)

2 → 10 → 7 → 8 → 9 → 13 → 4(加强版) → 自定义分配器相关

高频经典题目参考代码框架(供参考思路)

题2 - 简版string(最经典深拷贝题)

classMyString{private:char*data=nullptr;size_t len=0;size_t capacity=0;public:// 构造函数们MyString()=default;MyString(constchar*s);MyString(constMyString&other);// 拷贝构造MyString(MyString&&other)noexcept;// 移动构造// 赋值运算符MyString&operator=(constMyString&other);// 拷贝赋值MyString&operator=(MyString&&other)noexcept;// 移动赋值~MyString(){delete[]data;}// 其他常用接口...size_tsize()const{returnlen;}constchar*c_str()const{returndata?data:"";}voidpush_back(charc);// ...};

题3 - 最推荐的现代单例(Meyers’ Singleton)

classSingleton{public:staticSingleton&getInstance(){staticSingleton instance;// 线程安全、按需初始化、自动析构returninstance;}// 禁用拷贝和移动Singleton(constSingleton&)=delete;Singleton&operator=(constSingleton&)=delete;private:Singleton()=default;~Singleton()=default;};

题8 - 极简版shared_ptr(只看思路)

classshared_ptr{T*ptr=nullptr;long*ref_count=nullptr;public:explicitshared_ptr(T*p=nullptr):ptr(p),ref_count(newlong(1)){}shared_ptr(constshared_ptr&other):ptr(other.ptr),ref_count(other.ref_count){if(ref_count)++*ref_count;}~shared_ptr(){if(ref_count&&--*ref_count==0){deleteptr;deleteref_count;}}// ... 移动构造/赋值、operator*、operator-> 等};

祝刷题愉快!

想重点练哪几道题?或者想要某个难度区间的完整题目+参考答案列表?
可以直接告诉我~ 😄

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/6 16:09:22

2026 年北京优质汽车聚集地推荐

引言:随着新能源汽车产业的蓬勃发展与汽车消费需求的升级,北京涌现出多个特色鲜明的汽车聚集地。其中,五方天雅汽车服务园凭借二十余年的行业积淀与全链条服务优势,成为 2026 年北京汽车消费市场的核心地标,而其他优质…

作者头像 李华
网站建设 2026/5/6 16:09:23

Docker讲解

2.Docker基础 接下来,我们一起来学习Docker使用的一些基础知识,为将来部署项目打下基础。具体用法可以参考Docker官方文档: https://docs.docker.com/ 2.1.常见命令 首先我们来学习Docker中的常见命令,可以参考官方文档&#…

作者头像 李华
网站建设 2026/4/29 13:11:48

[讨论]合川杀猪、牛栏和AI

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 jeri 2026-1-6 19:03 这里的改进,按软件方法的三种改进,物流变信息流比较接近(原来是人工做围栏),但按书中的定义--可以提炼…

作者头像 李华
网站建设 2026/4/27 13:19:51

Windows卸载神器,超越系统自带

今天给大家推荐一款Windows的卸载工具,一款完全免费的软件,非常好用,有需要的小伙伴可以下载收藏。 Bulk Crap Uninstalle 免费开源的卸载工具 这款软件是一款免费开源的卸载工具,是比系统自带很多的,也是比系统自带…

作者头像 李华
网站建设 2026/5/5 21:53:53

Transformer架构:大模型背后的技术基石与未来展望

Transformer架构作为大模型的核心技术,自2017年凭借自注意力机制解决了RNN的长序列处理难题,在NLP领域表现卓越。尽管面临计算成本高、可解释性弱等挑战,但其未来发展方向明确,将向更高效、精简演进,多模态应用前景广阔…

作者头像 李华