[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-80099":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":17,"stars90d":15,"forks30d":15,"starsTrendScore":17,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":24,"readmeContent":25,"aiSummary":26,"trendingCount":15,"starSnapshotCount":15,"syncStatus":27,"lastSyncTime":28,"discoverSource":29},80099,"Cpp-Interviewer","yiqi-7\u002FCpp-Interviewer","yiqi-7","以面试官的角度为你讲解C++知识（针对面试高效学习）","",null,"Python",60,5,57,0,1,3,46.13,"MIT License",false,"main",true,[],"2026-06-12 04:01:26","\u003Cdiv align=\"center\">\n\n# Cpp-Interviewer\n\n**C++ 面试学习伙伴 — 学 + 练，双模式覆盖**\n\n[中文](#中文) | [English](#english)\n\n![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue.svg)\n![Platform](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fplatform-Claude%20Code-lightgrey.svg)\n\n\u003C\u002Fdiv>\n\n---\n\n\u003Ca id=\"中文\">\u003C\u002Fa>\n\n## 中文\n\n### 简介\n\n模拟面试官角色，帮助你准备 C++ 面试。\n\n- **不是直接给答案**，而是引导你思考、追问细节、指出常见误区\n- **无需 PDF 资料**，无需安装 Git LFS，下载后直接使用\n- **两种模式**，学练结合\n\n### 两种模式\n\n| 入口 | 作用 | 示例 |\n|------|------|------|\n| `\u002Finterview` | 知识讲解 | `\u002Finterview 虚函数是怎么实现的` |\n| `\u002Fcoach` | 面试训练 | `\u002Fcoach 虚函数`、`\u002Fcoach weak` |\n\n```\n\u002Finterview = 教学讲解（学）\n\u002Fcoach = 面试训练（练）\n```\n\n### 使用方式\n\n#### 讲解模式（\u002Finterview）\n\n```\n\u002Finterview 虚函数是怎么实现的\n\u002Finterview 智能指针有哪几种\n\u002Finterview 什么是内存泄漏\n```\n\n#### 训练模式（\u002Fcoach）\n\n```\n\u002Fcoach 虚函数          # 专项训练：虚函数\n\u002Fcoach 智能指针         # 专项训练：智能指针\n\u002Fcoach weak            # 训练薄弱知识点\n\u002Fcoach status          # 查看掌握度仪表盘\n\u002Fcoach plan            # 生成今日训练计划\n\u002Fcoach start           # 进入训练循环\n\u002Fcoach reset           # 重置所有学习状态\n\u002Fcoach export          # 导出学习数据到 JSON\n```\n\n`\u002Fcoach` 会像面试官一样：**出题 → 等你回答 → 评价 → 追问 → 下一题**。\n\n#### 训练模式交互示例\n\n**专项训练 `\u002Fcoach 虚函数`**\n\n```\n你：\u002Fcoach 虚函数\n\n教练：专项训练：vtable\n      掌握度：2.4%\n      难度：基础\n\n      第 1 题：\n      什么是虚函数表（vtable）？每个包含虚函数的类和它的对象分别与 vtable 是什么关系？\n\n你：虚函数表是一个函数指针数组，编译器为每个含虚函数的类生成一张表。类共享一张 vtable，对象通过 vptr 指向它。\n\n教练：评价：概念基本正确，但遗漏了 vptr 的存储位置和继承场景下的表合并规则。\n      薄弱点：vptr 布局、多重继承\n      掌握度更新：2.4% → 12%\n\n      第 2 题：\n      多重继承下，一个对象会有几个 vptr？编译器如何决定调用哪个虚函数？\n```\n\n**薄弱训练 `\u002Fcoach weak`**\n\n```\n你：\u002Fcoach weak\n\n教练：当前薄弱点：vtable（掌握度 12%）\n      开始训练...\n\n      第 1 题：\n      虚析构函数的作用是什么？如果基类析构函数不是虚函数，delete 派生类指针会发生什么？\n```\n\n**掌握度仪表盘 `\u002Fcoach status`**\n\n```\n你：\u002Fcoach status\n\n教练：📊 掌握度仪表盘\n      ──────────────────────────\n      总知识点：15    已掌握：2\n      薄弱：8       平均掌握度：23%\n      ──────────────────────────\n      ▓▓▓░░░░░░░  虚函数       35%\n      ▓▓░░░░░░░░  智能指针     20%\n      ▓░░░░░░░░░  vtable       12%\n      ░░░░░░░░░░  内存管理      5%\n      ...\n```\n\n**今日计划 `\u002Fcoach plan`**\n\n```\n你：\u002Fcoach plan\n\n教练：📋 今日训练计划\n      ──────────────────────────\n      复习（到期）：\n        1. vtable — 上次训练 3 天前，建议复习\n      新增（薄弱）：\n        2. 内存管理 — 掌握度 5%\n        3. 多线程锁 — 掌握度 8%\n      ──────────────────────────\n      输入 \u002Fcoach 开始按计划训练\n```\n\n**进入训练循环 `\u002Fcoach start`**\n\n```\n你：\u002Fcoach start\n\n教练：你想训练哪个方向？\n      - 直接说知识点名称（如\"虚函数\"、\"智能指针\"）\n      - weak：训练薄弱知识点\n      - due：复习到期内容\n\n你：虚函数\n\n教练：专项训练：虚函数\n      掌握度：35%\n      难度：中等\n\n      第 1 题：\n      虚函数的动态绑定在编译期和运行期分别做了什么？如果不用虚函数，还有什么方式实现多态？\n```\n\n### 核心特性\n\n- **面试官视角**：引导思考，不直接给答案\n- **弱项驱动训练**：自动优先训练最薄弱知识点\n- **六维度精准诊断**：correctness、completeness、depth、clarity、code_accuracy、edge_case_awareness\n- **追问式训练**：根据你的回答持续追问，挖掘薄弱点\n- **SQLite 状态持久化**：掌握度、QA 历史自动存储\n\n### 安装方式\n\n#### 方式一：克隆 + 自动安装（推荐）\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fyiqi-7\u002FCpp-Interviewer.git\ncd Cpp-Interviewer\npython setup.py\n```\n\n安装后重启 Claude Code，输入 `\u002F` 即可看到 `interview` 和 `coach`。\n\n#### 方式二：手动安装\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fyiqi-7\u002FCpp-Interviewer.git\n```\n\n将 `skills\u002Finterview\u002F` 和 `skills\u002Fcoach\u002F` 两个文件夹复制到 `~\u002F.claude\u002Fskills\u002F` 下：\n\n```\n~\u002F.claude\u002Fskills\u002F\n├── interview\u002F\n│   ├── SKILL.md\n│   └── index\u002Fknowledge_index.json\n└── coach\u002F\n    ├── SKILL.md\n    ├── coach\u002F                # Python 持久化后端\n    │   ├── cli.py\n    │   ├── db.py\n    │   ├── scheduler.py\n    │   └── ...\n    └── index\u002Fknowledge_index.json\n```\n\n### LLM 配置（可选）\n\n默认使用 MockLLMClient，**无需任何配置即可使用**。\n\n如需接入真实 LLM（如 OpenAI、Claude 等），设置以下环境变量：\n\n```bash\n# 必填：API Key\nexport OPENAI_API_KEY=\"sk-...\"\n\n# 可选：自定义 API 地址（默认 OpenAI）\nexport OPENAI_BASE_URL=\"https:\u002F\u002Fapi.openai.com\u002Fv1\"\n\n# 可选：模型名称（默认 gpt-4o）\nexport OPENAI_MODEL=\"gpt-4o\"\n```\n\n支持所有 OpenAI 兼容 API（如 DeepSeek、Moonshot、本地 Ollama 等）。\n\n### 注意事项\n\n- **无需 PDF 资料即可使用**，默认基于内置知识点索引和模型知识生成回答\n\n### 开发者调试方式\n\n```bash\npip install -e .\npython -m pytest tests\u002F -v\npython -m coach.cli status\npython -m coach.cli topic 虚函数\n```\n\n### 开源许可\n\n本项目采用 [MIT License](https:\u002F\u002Fgithub.com\u002Fyiqi-7\u002FCpp-Interviewer\u002Fblob\u002Fmain\u002FLICENSE) 开源。\n\n### 社区\n\n- 交流群：Q 828570482\n- 已获 [LINUX DO](https:\u002F\u002Flinux.do\u002F) 社区认可\n\n## Star History\n\n\u003Ca href=\"https:\u002F\u002Fwww.star-history.com\u002F?repos=yiqi-7%2FCpp-Interviewer&type=date&legend=top-left\">\n \u003Cpicture>\n   \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fchart?repos=yiqi-7\u002FCpp-Interviewer&type=date&theme=dark&legend=top-left\" \u002F>\n   \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fchart?repos=yiqi-7\u002FCpp-Interviewer&type=date&legend=top-left\" \u002F>\n   \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Fapi.star-history.com\u002Fchart?repos=yiqi-7\u002FCpp-Interviewer&type=date&legend=top-left\" \u002F>\n \u003C\u002Fpicture>\n\u003C\u002Fa>\n\n---\n\n\u003Ca id=\"english\">\u003C\u002Fa>\n\n## English\n\n### Introduction\n\nSimulates an interviewer to help you prepare for C++ interviews.\n\n- **No direct answers** — guides your thinking, asks follow-up questions, highlights pitfalls\n- **No PDF required** — works out of the box with built-in knowledge index\n- **Two modes** — learn + practice\n\n### Two Modes\n\n| Entry | Purpose | Example |\n|-------|---------|---------|\n| `\u002Finterview` | Teaching | `\u002Finterview How are virtual functions implemented` |\n| `\u002Fcoach` | Training | `\u002Fcoach virtual_function`, `\u002Fcoach weak` |\n\n```\n\u002Finterview = teaching (learn)\n\u002Fcoach = interview training (practice)\n```\n\n### Usage\n\n#### Teaching Mode (\u002Finterview)\n\n```\n\u002Finterview How are virtual functions implemented\n\u002Finterview What types of smart pointers are there\n\u002Finterview What is a memory leak\n```\n\n#### Training Mode (\u002Fcoach)\n\n```\n\u002Fcoach virtual_function    # Train specific topic\n\u002Fcoach smart_pointer       # Train specific topic\n\u002Fcoach weak               # Train weak topics\n\u002Fcoach status             # View mastery dashboard\n\u002Fcoach plan               # Generate today's training plan\n\u002Fcoach start              # Enter training loop\n\u002Fcoach reset              # Reset all learning state\n\u002Fcoach export             # Export learning data to JSON\n```\n\n`\u002Fcoach` acts like an interviewer: **ask → wait for your answer → evaluate → follow-up → next question**.\n\n#### Training Mode Interaction Examples\n\n**Specific Topic `\u002Fcoach virtual_function`**\n\n```\nYou: \u002Fcoach virtual_function\n\nCoach: Training: vtable\n       Mastery: 2.4%\n       Difficulty: Basic\n\n       Q1:\n       What is a vtable? What's the relationship between a class with virtual functions, its objects, and the vtable?\n\nYou: A vtable is an array of function pointers. The compiler generates one per class with virtual functions. Objects point to it via vptr.\n\nCoach: Evaluation: Core concept correct, but missed vptr storage layout and inheritance table merging rules.\n       Weakness: vptr layout, multiple inheritance\n       Mastery update: 2.4% → 12%\n\n       Q2:\n       Under multiple inheritance, how many vptrs does an object have? How does the compiler resolve virtual function calls?\n```\n\n**Weak Topics `\u002Fcoach weak`**\n\n```\nYou: \u002Fcoach weak\n\nCoach: Current weakness: vtable (mastery 12%)\n       Starting training...\n\n       Q1:\n       What's the purpose of a virtual destructor? What happens if you delete a derived class pointer through a non-virtual base destructor?\n```\n\n**Mastery Dashboard `\u002Fcoach status`**\n\n```\nYou: \u002Fcoach status\n\nCoach: 📊 Mastery Dashboard\n       ──────────────────────────\n       Total: 15    Mastered: 2\n       Weak: 8      Avg Mastery: 23%\n       ──────────────────────────\n       ▓▓▓░░░░░░░  Virtual Functions   35%\n       ▓▓░░░░░░░░  Smart Pointers      20%\n       ▓░░░░░░░░░  vtable              12%\n       ░░░░░░░░░░  Memory Mgmt          5%\n       ...\n```\n\n**Training Plan `\u002Fcoach plan`**\n\n```\nYou: \u002Fcoach plan\n\nCoach: 📋 Today's Training Plan\n       ──────────────────────────\n       Review (due):\n         1. vtable — last trained 3 days ago, recommended review\n       New (weak):\n         2. Memory Management — mastery 5%\n         3. Thread Locks — mastery 8%\n       ──────────────────────────\n       Type \u002Fcoach to start training\n```\n\n**Training Loop `\u002Fcoach start`**\n\n```\nYou: \u002Fcoach start\n\nCoach: What topic would you like to train?\n       - Type a topic name (e.g. \"virtual_function\", \"smart_pointer\")\n       - weak: train weak topics\n       - due: review due content\n\nYou: virtual_function\n\nCoach: Training: Virtual Functions\n       Mastery: 35%\n       Difficulty: Intermediate\n\n       Q1:\n       What happens at compile time vs runtime for dynamic binding of virtual functions? Besides virtual functions, what other ways can achieve polymorphism?\n```\n\n### Core Features\n\n- **Interviewer perspective**: Guides thinking, no direct answers\n- **Weakness-driven training**: Automatically prioritizes weakest topics\n- **Six-dimension precise diagnosis**: correctness, completeness, depth, clarity, code_accuracy, edge_case_awareness\n- **Follow-up based training**: Continues questioning based on your answers to dig out weak points\n- **SQLite state persistence**: Mastery, QA history automatically stored\n\n### Installation\n\n#### Option 1: Clone + Auto Install (Recommended)\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fyiqi-7\u002FCpp-Interviewer.git\ncd Cpp-Interviewer\npython setup.py\n```\n\nAfter installation, restart Claude Code. Type `\u002F` to see `interview` and `coach`.\n\n#### Option 2: Manual Install\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fyiqi-7\u002FCpp-Interviewer.git\n```\n\nCopy `skills\u002Finterview\u002F` and `skills\u002Fcoach\u002F` to `~\u002F.claude\u002Fskills\u002F`:\n\n```\n~\u002F.claude\u002Fskills\u002F\n├── interview\u002F\n│   ├── SKILL.md\n│   └── index\u002Fknowledge_index.json\n└── coach\u002F\n    ├── SKILL.md\n    ├── coach\u002F                # Python 持久化后端\n    │   ├── cli.py\n    │   ├── db.py\n    │   ├── scheduler.py\n    │   └── ...\n    └── index\u002Fknowledge_index.json\n```\n\n### LLM Configuration (Optional)\n\nUses MockLLMClient by default — **no configuration needed**.\n\nTo connect a real LLM (OpenAI, Claude, etc.), set these environment variables:\n\n```bash\n# Required: API Key\nexport OPENAI_API_KEY=\"sk-...\"\n\n# Optional: Custom API endpoint (default: OpenAI)\nexport OPENAI_BASE_URL=\"https:\u002F\u002Fapi.openai.com\u002Fv1\"\n\n# Optional: Model name (default: gpt-4o)\nexport OPENAI_MODEL=\"gpt-4o\"\n```\n\nSupports all OpenAI-compatible APIs (DeepSeek, Moonshot, local Ollama, etc.).\n\n### Notes\n\n- **Works without PDF resources** — default responses based on built-in knowledge index and model knowledge\n\n### Developer \u002F Debug Mode\n\n```bash\npip install -e .\npython -m pytest tests\u002F -v\npython -m coach.cli status\npython -m coach.cli topic virtual_function\n```\n\n### License\n\nThis project is licensed under the [MIT License](https:\u002F\u002Fgithub.com\u002Fyiqi-7\u002FCpp-Interviewer\u002Fblob\u002Fmain\u002FLICENSE).\n\n### Community\n\n- Discussion group: Q 828570482\n- Recognized by [LINUX DO](https:\u002F\u002Flinux.do\u002F) community\n","Cpp-Interviewer 是一个模拟面试官角色，帮助用户准备 C++ 面试的工具。该项目通过引导思考、追问细节和指出常见误区的方式，帮助用户高效学习C++知识。它提供两种模式：讲解模式（\u002Finterview）用于知识点的学习，训练模式（\u002Fcoach）则模拟真实面试场景进行练习。项目支持自动优先训练用户的薄弱知识点，并通过六维度精准诊断来评估回答质量。此外，Cpp-Interviewer 还具备SQLite状态持久化功能，能够自动存储用户的掌握度和问答历史。适合正在准备C++相关技术岗位面试的人群使用。",2,"2026-06-11 03:59:14","CREATED_QUERY"]