当前位置: 首页 > news >正文

【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.xdnf.cn/news/752383.html

相关文章:

  • 使用ReactNative加载HarmonyOS Svga动画
  • 西瓜书第十一章——降维与度量学习
  • π0论文阅读
  • 16-前端Web实战(Tlias案例-部门管理)
  • WEBSTORM前端 —— 第3章:移动 Web —— 第4节:移动适配-VM
  • Java函数式编程(上)
  • 【小沐杂货铺】基于Three.JS绘制太阳系Solar System(GIS 、WebGL、vue、react,提供全部源代码)第2期
  • Python UV 环境下的 PyKDL 运动学库安装
  • CSS篇-5
  • docker、ctr、crictl命令简介与使用
  • 基于Python与本地Ollama的智能语音唤醒助手实现
  • 无标注数据如何提升LLM推理能力?熵最小化 提升LLM自信度
  • 概念篇:软件测试
  • 基于springboot的益智游戏系统的设计与实现
  • Hive SQL优化实践:提升大数据处理效率的关键策略
  • MMRL: Multi-Modal Representation Learning for Vision-Language Models(多模态表示学习)
  • comfyui利用 SkyReels-V2直接生成长视频本地部署问题总结 1
  • 2025年计算机领域年度主题:融合创新与技术突破
  • NX753NX756美光科技闪存NX784NX785
  • Java大厂后端技术栈故障排查实战:Spring Boot、Redis、Kafka、JVM典型问题与解决方案
  • 基于微信小程序的云校园信息服务平台设计与实现(源码+定制+开发)云端校园服务系统开发 面向师生的校园事务小程序设计与实现 融合微信生态的智慧校园管理系统开发
  • 英语写作中“专注于”focus on、concentrate的用法
  • oracle goldengate同步SQL server到SQL server的实时数据同步
  • 从零开始的git学习
  • 湖北理元理律师事务所:企业债务优化的科学路径与人文关怀
  • Socket网络编程之UDP套件字
  • 设计模式-行为型模式-模版方法模式
  • docker 部署 gin
  • 缓存一致性协议的影响
  • 使用Docker-NVIDIA-GPU开发配置:解决 Docker NVIDIA 运行时错误方法