2023年1月12日

C++不要对函数局部变量返回值添加std::move()

摘要: C++不要对函数返回值添加std::move() References C++ 函数返回局部变量的std::move()问题? Return Statement Copy elision Summary 编译器会进行返回值优化——复制省略(copy elision),局部对象直接创建在了需要函数返回 阅读全文

posted @ 2023-01-12 14:40 七昂的技术之旅 阅读(952) 评论(0) 推荐(0) 编辑

2022年7月3日

LeetCode148. Sort List 单链表排序

摘要: 单链表排序 以arr = [8,6,7,5,1,2]为例 1. 自顶向下归并排序(递归)——分治法 Time: O(NlogN) Space: O(LOG(N)) 自顶向下: (8->6->7) | (5->1->2) (8->6)|(7) | (5->1)|(2) (8)|(6)|(7) |(5) 阅读全文

posted @ 2022-07-03 13:15 七昂的技术之旅 阅读(22) 评论(0) 推荐(0) 编辑

2022年5月2日

LeetCode 验证二叉搜索树的两种不同题型

摘要: 一、leetcode 98. 验证二叉搜索树 通过辅助函数增加参数进行判断。 虽然节点值在INT范围内,但要求其中序遍历序列严格单调递增,因此等于也不行,而且需要用LONG_MIN\LONG_MAX初始化最大最小值。 using ll = long long; class Solution { pr 阅读全文

posted @ 2022-05-02 01:36 七昂的技术之旅 阅读(22) 评论(0) 推荐(0) 编辑

2022年3月2日

c++ push_back()和emplace_back()区别

摘要: c++ push_back()和emplace_back()区别 References C++中push_back和emplace_back的区别 push_back v.s. emplace_back 一、源码分析 ###(1)push_back()定义 // stl_vector.h templ 阅读全文

posted @ 2022-03-02 21:47 七昂的技术之旅 阅读(460) 评论(0) 推荐(0) 编辑

2022年3月1日

c++11 动态内存与智能指针详解

摘要: c++ 动态内存与智能指针详解 一、 动态内存 (一)程序对象的生存期 全局对象在程序启动时分配,在程序结束时销毁。 对于局部自动对象,当我们进入其定义所在的程序块时被创建,在离开块时销毁。 局部static对象在第一次使用前分配,在程序结束时销毁。 C++还支持动态分配对象。动态分配的对象的生存期 阅读全文

posted @ 2022-03-01 23:34 七昂的技术之旅 阅读(137) 评论(0) 推荐(0) 编辑

c++对象的生命周期

摘要: 参考链接:https://juejin.cn/post/6844904152833753096 1. 程序对象的生存期 全局对象在程序启动时分配,在程序结束时销毁。 对于局部自动对象,当我们进入其定义所在的程序块时被创建,在离开块时销毁。这个过程由栈自动完成。 局部static对象在第一次使用前分配 阅读全文

posted @ 2022-03-01 22:38 七昂的技术之旅 阅读(496) 评论(0) 推荐(0) 编辑

2022年1月31日

LeetCode 二叉树的最近公共祖先

摘要: 一.二叉搜索树的最近公共祖先 利用二叉搜索树的性质,祖先的两个孩子,左孩子的小于根节点的值,右孩子大于根节点的值。 如果根节点的值,同时大于p的值和q的值,那么在左子树找根节点; 如果根节点的值,同时小于p的值和q的值,那么在右子树找根节点。 /** * Definition for a binar 阅读全文

posted @ 2022-01-31 11:12 七昂的技术之旅 阅读(10) 评论(0) 推荐(0) 编辑

2022年1月26日

c++实现几种常见排序算法

摘要: 一、快速排序 int getPivot(vector<int>& arr, int left, int right){ int tmp = arr[left]; while(left < right){ while(left < right && arr[right] >= tmp){ right 阅读全文

posted @ 2022-01-26 23:53 七昂的技术之旅 阅读(36) 评论(0) 推荐(0) 编辑

2022年1月25日

C语言linux系统fork函数

摘要: References: c语言fork函数 linux中fork()函数详解 一、fork函数简介 作用 在linux下,C语言创建进程用fork函数。fork就是从父进程拷贝一个新的进程出来,子进程和父进程的进程ID不同,但用户数据一样。fork函数被父进程调用一次,但是却返回两次;一次是返回到父 阅读全文

posted @ 2022-01-25 22:55 七昂的技术之旅 阅读(897) 评论(0) 推荐(1) 编辑

2022年1月22日

动态规划——正则表达式匹配与通配符匹配

摘要: 一、LeetCode 10.正则表达式匹配 dp[i][j]表示字符串s[0...i]与字符串p[0...j]是否匹配。空字符串与空字符串是匹配的,dp[0][0] = true。 s[i]与p[j]相等或通过'.'匹配, 那么s[0...i]和p[0...j] 是否匹配取决于s[0...i-1]与 阅读全文

posted @ 2022-01-22 17:42 七昂的技术之旅 阅读(108) 评论(0) 推荐(0) 编辑

导航