摘要: [Algo] 二叉树遍历 二叉树节点类型定义: struct BinaryTreeNode { int val; BinaryTreeNode *left; BinaryTreeNode *right; BinaryTreeNode(int x) : val(x), left(nullptr), r 阅读全文
posted @ 2024-12-06 10:50 yaoguyuan 阅读(29) 评论(0) 推荐(0)
摘要: [Algo] 栈和队列 1. 栈实现队列 // 1. 栈实现队列 class MyQueue { private: stack<int> in; stack<int> out; public: void enQueue(int val) { in.push(val); inToOut(); } vo 阅读全文
posted @ 2024-12-05 17:54 yaoguyuan 阅读(9) 评论(0) 推荐(0)
摘要: [Algo] 链表操作 链表节点类型定义 struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(nullptr) {} }; 1. 反转链表 // 1. 反转链表 ListNode *reverseList 阅读全文
posted @ 2024-12-03 17:05 yaoguyuan 阅读(26) 评论(0) 推荐(0)
摘要: [Algo] 二分查找 注:Algo系列基于左神算法教程,提供C++实现。 1. 经典算法 // 1. 经典二分查找:给定有序序列,查找val,存在返回(任一)索引,否则返回-1 int binarySearch(const vector<int> &v, int val) { if (v.size 阅读全文
posted @ 2024-12-02 17:08 yaoguyuan 阅读(16) 评论(0) 推荐(0)
摘要: [Lang] 类模板 完全特化与偏特化: 特性 完全特化(Full Specialization) 偏特化(Partial Specialization) 定义 为特定类型提供完全的实现 为类型参数的部分组合提供定制的实现 模板参数 必须指定所有的模板参数 可以只指定一个或部分模板参数 示例 tem 阅读全文
posted @ 2024-12-01 12:28 yaoguyuan 阅读(11) 评论(0) 推荐(0)
摘要: [Lang] 函数模板 1. 自动类型推导和显示指定类型 自动类型推导不能进行隐式类型转换。 显式指定类型可以进行隐式类型转换。但前提是函数模板的参数必须按值传递,因为按引用传递不支持隐式类型转换。 #include<iostream> using namespace std; template < 阅读全文
posted @ 2024-08-18 16:02 yaoguyuan 阅读(10) 评论(0) 推荐(0)
摘要: [Lang] 虚函数 1. 虚函数与纯虚函数 多态分为静态多态和动态多态,静态多态指函数重载和运算符重载,而动态多态指虚函数。 动态多态的条件: 子类重写父类的虚函数 父类指针或引用指向子类对象 虚函数的底层原理: 对于每个包含虚函数的类,编译器都会创建一个虚函数表(vftable),每一个虚函数表 阅读全文
posted @ 2024-08-16 00:26 yaoguyuan 阅读(31) 评论(0) 推荐(0)
摘要: [Lang] 运算符重载 #include<iostream> using namespace std; class MyInt { friend ostream &operator<<(ostream &os, const MyInt &myint); friend istream &operat 阅读全文
posted @ 2024-08-15 01:03 yaoguyuan 阅读(17) 评论(0) 推荐(0)
摘要: [Lang] 智能指针 智能指针能够有效简化内存管理,避免内存泄漏和悬挂指针等问题。 1. std::unique_ptr 独占所有权:一个 std::unique_ptr 对象拥有其管理的对象的唯一所有权。 不允许复制:不能进行复制操作,尝试复制会导致编译错误。 允许移动:可以将 std::uni 阅读全文
posted @ 2024-08-13 22:56 yaoguyuan 阅读(23) 评论(0) 推荐(0)
摘要: [Lang] 构造和析构 1. 深拷贝与浅拷贝 浅拷贝是在复制对象时,仅复制对象的成员变量的值,而不考虑这些成员变量是否指向了动态分配的内存或其他资源。也就是说,浅拷贝只复制指针的值,不复制指针所指向的内容。编译器默认提供的拷贝构造函数是浅拷贝。 深拷贝是在复制对象时,不仅复制对象的成员变量的值,而 阅读全文
posted @ 2024-08-13 22:55 yaoguyuan 阅读(18) 评论(0) 推荐(0)