1/22/2014: 纪念第一个C++ programmer电面--F家

作者分享了自己20天刷CC题目的经历,并提到为了面试成功,不仅需要掌握LeetCode、CC和EPI等内容,还需要有大型项目的实践经验。此外,还详细记录了面试过程中的几个C++基础和技术问题。

经过20天的CC刷题(其实是学习),才刚刚做到第四章。看看其他非ACM牛人,都是leetcode,CC,EPI滚瓜烂熟才去面。而且onsite确实是靠实力,要有做过大project之后才能真正融会贯通C++精神。

Anyway,谢谢郭志给的refer,不然连电面的机会都没有。---还是谢谢同胞

开头是C++基础题:

1. Fib的2种写法:recursive和DP

2. Struct和Class的区别;在C里面用什么system function清零1个int reg;

3. 继承时,embedded 的member function的scope;3个花括号,里--中--外。弄晕了。。。

4. 用STL的list实现一个double ended queue。(这里有个很好的帖子讲了deque的实现点击打开链接)

其实deque的STL里有很重要和巧妙地设计机制,详情请看侯捷的《STL源码剖析》。

5. 实现一个Parser automata:

5.a 具体是实现什么的::只做过verilog的状态机mealy 和 mooly。原来compiler里面的状态机是可以有多个圈圈在同一个状态。。。

5.b 有4中state:DFA, setFlag, readFlag, printResult。设计Struct来实现,用C++和继承。

5.c 设计程序把这个automata的图用code连起来。


一句话:赶紧把CC, EPI, Leetcode刷完

你运行了 `ls` 命令并展示了你的前端构建产物目录: ``` F:\Programmer\python\frontend\my-tauri-app\dist ``` 输出如下: ``` Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2025/11/2 16:19 assets -a---- 2025/11/2 16:16 188857 icon.icns -a---- 2025/11/2 16:16 156194 icon.ico -a---- 2025/11/2 16:16 225520 icon.png -a---- 2025/11/2 16:16 475 index.html ``` --- ## ✅ 恭喜!你已经成功生成了前端的 `dist/` 目录! 这意味着: - 你的 Vite(或 Webpack)项目构建成功 ✅ - `index.html` 和静态资源(JS/CSS)已打包完成 ✅ - Tauri 现在可以正确地将这些文件**嵌入到二进制中**或**复制到应用包内** --- ## 🔍 分析你的 `dist/` 内容 | 文件 | 说明 | |------|------| | `index.html` (475 B) | 主页,非常小 → 可能是经过压缩、引用了外部 JS/CSS | | `assets/` | 存放编译后的 `.js`, `.css` 文件(如 `main.js`, `style.css`) | | `icon.*` | 应用图标(`.ico` Windows, `.icns` macOS),Tauri 打包时会使用 | 📌 特别注意:`index.html` 只有 **475 字节**,这很正常。现代前端框架通过以下方式减小体积: - 外部引入 JS/CSS(放在 `assets/*.js` 中) - 启用 gzip/brotli 压缩 - Tree-shaking 移除无用代码 你可以打开 `index.html` 看看它是否像这样: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <link rel="icon" type="image/svg+xml" href="/vite.svg" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>My Tauri App</title> </head> <body> <div id="root"></div> <script type="module" src="/src/main.ts"></script> </body> </html> ``` 但在生产环境构建后,实际内容会被替换为: ```html <script type="module" src="./assets/index-xxxx.js"></script> ``` 所以你在 `dist/index.html` 中看到的是一个轻量化的壳。 --- ## 🧩 下一步:确认 Tauri 是否正确包含这些资源 现在你已经有了 `dist/`,接下来要确保 `tauri build` 能找到它。 ### ✅ 检查 `src-tauri/tauri.conf.json` 你应该有类似配置: ```json { "build": { "distDir": "../dist", "devPath": "http://localhost:3000" }, "tauri": { "bundle": { "active": true, "targets": "all" } } } ``` 关键点: - `"distDir": "../dist"` → 必须指向你刚刚生成的目录 ✅ - 如果写成了 `"../public"` 或 `"../build"` 就会出错 ❌ --- ## ✅ 运行构建命令 你现在应该执行: ```powershell npm run tauri build ``` 或者更详细调试模式: ```powershell npx tauri build --verbose ``` 你会看到输出类似: ``` 📦 Packaging application... 👉 distDir: F:\Programmer\python\frontend\my-tauri-app\dist 👉 Target: x64 app for windows 📦 Bundling my-tauri-app.exe... 💪 Upward mobility... ⚙️ Including embedded assets: index.html, assets/*.js, assets/*.css ✅ Successfully wrote bundle to: ...\appimage\my-tauri-app.AppDir\usr\lib\app\ ``` 最终生成路径通常是: ``` src-tauri/target/release/bundle/appimage/my-tauri-app.AppDir/usr/lib/app/ ``` 在这个目录下你应该能看到: - `index.html` - `assets/*.js` - `assets/*.css` --- ## 🛠️ 验证资源是否被打包进去(重要) 进入打包输出目录查看: ```powershell PS F:\Programmer\python\frontend\my-tauri-app> ls .\src-tauri\target\release\bundle\appimage\my-tauri-app.AppDir\usr\lib\app\ ``` 预期输出: ``` Directory: ... \usr\lib\app Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2025/11/2 16:19 assets -a---- 2025/11/2 16:16 475 index.html ``` ✅ 如果看到了这些文件,说明前端资源已成功集成! --- ## 🧹 补充建议 ### 1. 清理旧构建(避免缓存问题) ```powershell # 删除 dist 和 target rm -Recurse -Force .\dist\ rm -Recurse -Force .\src-tauri\target\ ``` 然后重新构建: ```powershell npm run build npm run tauri build ``` ### 2. 开发时使用 `tauri dev` ```powershell npm run tauri dev ``` 它会自动启动前端服务器,并连接 Tauri 应用,便于调试。 --- ## ✅ 总结:你现在处于正确轨道上! | 状态 | 结论 | |------|------| | `dist/` 存在? | ✅ 是 | | `index.html` 生成? | ✅ 是(475B 正常) | | `assets/` 包含 JS/CSS? | ✅ 极大概率有 | | Tauri 配置正确? | ⚠️ 需检查 `tauri.conf.json` 中 `distDir` | | 下一步动作? | ✅ 运行 `tauri build` 并验证打包结果 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值