摘要: dcc084fe-a937-4cf6-9b2d-f59765a1db19 ini配置文件介绍 一种常见的kv结构的配置文件 主要格式为 key=value 同时支持section, kv归属于一个section 如: [default] key1=value1 key2=value2 [sectio 阅读全文
posted @ 2023-01-08 17:05 飞天赤狐 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 背景 CSV(Comma-Separated Values)文件格式是一种场景的文本格式化文件, 简单轻量, 一般的第一列可以放置列标题, 以下放置内容, 如下: ID,NAME,AGE,HEIGHT,WEIGHT 1,李雷,18,1.73,131 2,刘雷,18,1.81,150 本文提供一个小巧 阅读全文
posted @ 2022-10-18 22:46 飞天赤狐 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 背景 正则表达式引擎一般通过构建NFA/DFA实现, 关于该种实现方式,可以参考如下文章 https://www.codeproject.com/Articles/5412/Writing-own-regular-expression-parser 对于仅需要支持较少运算符等简单场景, 可以考虑一种 阅读全文
posted @ 2022-10-15 11:12 飞天赤狐 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 问题描述 原题链接:力扣https://leetcode.cn/problems/longest-substring-without-repeating-characters/ 解题思路 使用滑动窗口实现, 定义一个字符队列作为滑动窗口, 处理流程 循环遍历输入字符串: 滑动窗口是否已包含当前字符 阅读全文
posted @ 2022-08-07 19:03 飞天赤狐 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 问题描述 解决思路 依次遍历每一层,把当前层的节点值都加入到当前层的数值结果数组中 同时把当前层所有下层子节点加入到下层节点队列 重复执行以上过程 实现代码 /** * Definition for a binary tree node. * struct TreeNode { * int val; 阅读全文
posted @ 2022-07-24 15:59 飞天赤狐 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 隐式类型转换介绍 c++编译时会在不同类型间进行自动转换, 因此使用不同数据类型进行比较、赋值等操作时, 可能不会报错,但可能因为忽略这些隐式类型转换而产生问题,而且不易排查 分场景代码示例 int负数值隐式转换为unsigned int 如下示例代码: #include <iostream> us 阅读全文
posted @ 2022-07-24 11:30 飞天赤狐 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 问题场景 在一段处理开始时new一个对象, 进行对象的构造或其他处理, 最后返回对象的指针, 但存在对象构造时check不合法的情况,这种情况下返回nullptr, 为避免内存泄露需要在返回nullptr的分支进行delete处理,由于分支可能较多,这里可能会遗漏delete,另外每个分支重复的加d 阅读全文
posted @ 2022-07-23 10:47 飞天赤狐 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 什么是移动语义 解决什么问题 在C++中如果不使用指针, 那么return一个对象的行为会触发copy构造函数, 带来额外开销 如下: Person MakePerson() { Person p; p.name = "WangLiang"; p.tel = "13888888888"; p.add 阅读全文
posted @ 2022-07-19 08:31 飞天赤狐 阅读(88) 评论(0) 推荐(0) 编辑
摘要: std::bind介绍 std::bind用于给函数绑定预设的参数, 这样实际上也可以给函数带上状态, 起到类似闭包的效果 以下是bind的几种用法 std::bind普通函数 看示例代码, 这里使用 std::placeholders::_1, 表达的是第一个参数的占位符 第2个参数预设为100, 阅读全文
posted @ 2022-07-15 07:24 飞天赤狐 阅读(190) 评论(0) 推荐(0) 编辑
摘要: lambda表达式是什么 lambda表达式实际是一个匿名函数指针, 如下示例代码: #include <iostream> using namespace std; int main(int argc, char* argv[]) { auto sum = [](int a, int b){ret 阅读全文
posted @ 2022-07-12 07:56 飞天赤狐 阅读(21) 评论(0) 推荐(0) 编辑