【C/C++】面试基础题目收集

C++ 软件开发面试中常见的刷题题目通常可分为以下几大类:数据结构与算法、系统编程、面向对象设计、C++ 语言特性、并发编程等。


🧠 一、数据结构与算法(力扣/牛客经典题)

掌握 STL 和底层结构实现能力:

📌 数组 & 字符串

  • 两数之和(LeetCode 1)
  • 三数之和(LeetCode 15)
  • 盛水最多的容器(LeetCode 11)
  • 最长不重复子串长度(LeetCode 3)
  • 字符串转整数(LeetCode 8)

📌 链表

  • 反转链表(LeetCode 206)
  • 判断链表是否有环(LeetCode 141)
  • 合并两个有序链表(LeetCode 21)
  • K 个一组翻转链表(LeetCode 25)

📌 栈与队列

  • 用两个栈实现队列(剑指 Offer 09)
  • 最小栈(LeetCode 155)
  • 滑动窗口最大值(LeetCode 239)

📌 哈希

  • 有效的字母异位词(LeetCode 242)
  • 字符串中的第一个唯一字符(LeetCode 387)
  • 和为 K 的子数组(LeetCode 560)

📌 树与图

  • 二叉树前/中/后/层序遍历(LeetCode 102/94/145)
  • 判断二叉搜索树合法性(LeetCode 98)
  • 最小公共祖先(LeetCode 236)
  • 克隆图(LeetCode 133)

📌 排序 & 搜索

  • 快排/归并排序手写实现
  • 二分查找变种(如搜索旋转数组 LeetCode 33)
  • TopK 问题(堆或快排思想)

📌 动态规划

  • 爬楼梯(LeetCode 70)
  • 最长回文子串(LeetCode 5)
  • 零一背包问题(经典 DP)
  • 编辑距离(LeetCode 72)

💡 二、C++ 语言特性与底层

了解 C++ 的内存模型、语法糖和 STL 容器底层实现:

📌 C++ 核心语言特性

  • 拷贝构造、移动构造、赋值操作区别
  • 智能指针实现原理(shared_ptr / unique_ptr / weak_ptr
  • 虚函数表机制、RTTI、类型转换(static_cast 等)
  • RAII 和资源管理模式
  • 模板特化、SFINAE、完美转发
  • lambda 表达式、bind、function

📌 STL 相关

  • vector, list, map, set, unordered_map 的底层实现
  • 自己实现简易版 vector(支持动态扩容)
  • 自己实现 shared_ptr
  • 红黑树(map/set 底层)基本操作手写(插入、删除)

🧵 三、并发与多线程编程

大厂常问线程模型、锁机制、任务调度类问题:

  • 用 C++ 实现线程池(支持任务提交和执行)
  • 生产者消费者模型(使用 condition_variable)
  • 原子操作与内存序(std::atomic, memory_order)
  • 实现一个读写锁
  • 死锁的产生与解决
  • 基于定时器的任务调度系统

🛠️ 四、系统编程基础题目

涵盖文件、网络、内存、信号等系统能力:

  • 实现 mmap/read/write 的文件读写工具
  • 实现一个简易 echo server(select/epoll)
  • TCP 三次握手/四次挥手过程图解
  • fork + pipe 实现父子进程通信
  • 实现一个自定义内存池 allocator

📦 五、面向对象设计 & 设计模式

企业级系统设计能力的基础:

  • 电梯系统设计 / 订票系统 / 日志系统
  • 实现观察者模式 / 单例模式 / 策略模式
  • 模拟实现一个 LRU Cache(LeetCode 146)

✅ 建议刷题顺序与方法

  1. 第一轮(基础刷题): 数据结构 + 算法题精刷(100 道以内)
  2. 第二轮(C++ 特性): STL/模板/智能指针/RAII/虚函数专题刷
  3. 第三轮(系统能力): 多线程 + 网络 + 内存 + 项目实战题
  4. 第四轮(综合系统设计): 设计一个线程池、异步日志、RPC 框架等

📚 配套资料推荐

  • 《Effective C++》《More Effective C++》《Effective Modern C++》
  • 《C++ Primer》《STL 源码剖析》
  • LeetCode、牛客网 C++ 题库
  • 《Linux 高性能服务器编程》(游双)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/83268.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

将手机网络经USB数据线和本地局域网共享给华为AP6050DN无线接入点

引言 由于最近装毕的新家所在的小区未能及时通宽带,于是家中各类无线设备如何上网就成了首要要解决的问题。 鉴于家中要联网的设备多、类型杂、支持频段也不一,总是开手机热点不是回事儿,于是就想着把手机网络引至华为AP6050DN无线接入点中,让家中所有的无线设备都能快速高…

【数据结构】图论核心算法解析:深度优先搜索(DFS)的纵深遍历与生成树实战指南​

深度优先搜索 导读:从广度到深度,探索图的遍历奥秘一、深度优先搜索二、算法思路三、算法逻辑四、算法评价五、深度优先生成树六、有向图与无向图结语:深潜与回溯,揭开图论世界的另一面 导读:从广度到深度,…

Flink CEP实践总结:使用方法、常见报错、优化与难点应对

Flink CEP实践总结:使用方法、常见报错、优化与难点应对 随着实时数据分析需求的提升,Flink CEP(Complex Event Processing,复杂事件处理)成为事件流检测中的利器。本文结合实际项目经验,总结Flink CEP的基…

Python数据类型详解:从字符串到布尔值,一网打尽

Python是现代编程语言中非常流行的一种,它的语法简洁、易懂,非常适合初学者。而在Python编程中,“数据类型”是最基础也是最重要的概念。理解这个概念,将为你之后的编程打下坚实的基础。 1. 什么是数据类型? 在Pytho…

python打卡day42

Grad-CAM与Hook函数 知识点回顾 回调函数lambda函数hook函数的模块钩子和张量钩子Grad-CAM的示例 在深度学习中,我们经常需要查看或修改模型中间层的输出或梯度,但标准的前向传播和反向传播过程通常是一个黑盒,很难直接访问中间层的信息。PyT…

中国风展示工作总结商务通用PPT模版

中国风展示工作总结商务通用PPT模版:中国风商务通用PPT 模版https://pan.quark.cn/s/42ad18c010d4

TeleAI发布TeleChat2.5及T1正式版,双双开源上线魔乐社区!

5月12日,中国电信开源TeleChat系列四个模型,涵盖复杂推理和通用问答的多个尺寸模型,包括TeleChat-T1-35B、TeleChat-T1-115B、TeleChat2.5-35B和TeleChat2.5-115B,实测模型性能均有显著的性能效果。TeleChat系列模型基于昇思MindS…

机器视觉2D定位引导一般步骤

机器视觉的2D定位引导是工业自动化中的核心应用,主要用于精确确定目标物体的位置(X, Y坐标)和角度(旋转角度θ),并引导机器人或运动机构进行抓取、装配、对位、检测等操作。其一般步骤可概括如下: 一、系统规划与硬件选型 明确需求: 定位精度要求(多少毫米/像素,多少…

儿童节快乐,聊聊数字的规律和同余原理

某年的6月1日是星期日。那么,同一年的6月30日是星期几? 星期是7天一个循环。所以说,这一天是星期几,7天之后同样也是星期几。而6月30日是在6月1日的29天之后:29 7 4 ... 1用29除以7,可以得出余数为1。而…

最佳实践|互联网行业软件供应链安全建设的SCA纵深实践方案

在数字化转型的浪潮中,开源组件已成为企业构建云服务与应用的基石,但其引入的安全风险也日益凸显。某互联网大厂的核心安全研究团队,通过深度应用软件成分分析(SCA)技术,构建了一套覆盖开源组件全生命周期管…

Docker Compose(容器编排)

目录 什么是 Docker Compose Docker Compose 的功能 Docker Compose 使用场景 Docker Compose 文件(docker-compose.yml) Docker Compose 命令清单 常见命令说明 操作案例 总结 什么是 Docker Compose docker-compose 是 Docker 官方的开源项…

【网络安全】轻量敏感路径扫描工具

订阅专栏,获取文末项目源码。 文章目录 工具简介工具特点项目结构使用方法1.环境准备2.配置目标URL3.运行扫描4.结果查看5.自定义扩展项目源码工具简介 该工具是一款基于Python的异步敏感路径扫描工具,用于检测目标网站是否存在敏感文件或路径泄露(如配置文件、密钥、版本控…

SpringAI+DeepSeek大模型应用开发实战

内容来自黑马程序员 这里写目录标题 认识AI和大模型大模型应用开发模型部署方案对比模型部署-云服务模型部署-本地部署调用大模型什么是大模型应用传统应用和大模型应用大模型应用 大模型应用开发技术架构 SpringAI对话机器人快速入门会话日志会话记忆 认识AI和大模型 AI的发…

高温炉制造企业Odoo ERP实施规划与深度分析报告

摘要 本报告旨在为高温炉生产企业提供一个基于Odoo 18平台的企业资源规划(ERP)系统实施的全面分析与规划。报告首先系统梳理了高温炉制造业独特的业务流程特点,随后详细映射了Odoo 18各核心模块功能与这些业务需求的匹配程度。重点分析了生产…

简述什么是全局锁?它的应用场景有哪些?

全局锁是数据库管理系统中的一种特殊锁机制,用于对整个数据库实例进行加锁,使数据库处于只读状态,阻止所有数据更新(DML)、数据定义(DDL)及更新类事务提交等操作。 其核心应用场景包括&#xf…

window 显示驱动开发-呈现开销改进(二)

对共享表面的纹理格式支持 驱动程序应支持共享资源和可共享的后台缓冲区,以使用 DXGI_FORMAT 枚举中的这些附加纹理格式: DXGI_FORMAT_A8_UNORMDXGI_FORMAT_R8_UNORMDXGI_FORMAT_R8G8_UNORMDXGI_FORMAT_BC1_TYPELESS\*DXGI_FORMAT_BC1_UNORMDXGI_FORMAT…

jenkins集成gitlab实现自动构建

jenkins集成gitlab实现自动构建 前面我们已经部署了Jenkins和gitlab,本文介绍将二者结合使用 项目源码上传至gitee提供公网访问:https://gitee.com/ye-xiao-tian/my-webapp 1、创建一个群组和项目 2、添加ssh密钥 #生成密钥 [rootgitlab ~]# ssh-keyge…

barker-OFDM模糊函数原理及仿真

文章目录 前言一、巴克码序列二、barker-OFDM 信号1、OFDM 信号表达式2、模糊函数表达式 三、MATLAB 仿真1、MATLAB 核心源码2、仿真结果①、barker-OFDM 模糊函数②、barker-OFDM 距离分辨率③、barker-OFDM 速度分辨率④、barker-OFDM 等高线图 四、资源自取 前言 本文进行 …

深入解析 Redis Cluster 架构与实现(一)

#作者:stackofumbrella 文章目录 Redis Cluster特点Redis Cluster与其它集群模式的区别集群目标性能hash tagsMutli-key操作Cluster Bus安全写入(write safety)集群节点的属性集群拓扑节点间handshake重定向与reshardingMOVED重定向ASK重定向…

linux centos 服务器性能排查 vmstat、top等常用指令

背景:项目上经常出现系统运行缓慢,由于数据库服务器是linux服务器,记录下linux服务器性能排查常用指令 vmstat vmstat介绍 vmstat 命令报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。由 vmstat 命令生成的报告可以用于平衡系统负载活动。系统范围内的这…