
c++笔记
小白抗小枪
这个作者很懒,什么都没留下…
展开
-
C++ STL源码刨析 list篇(1)容器建立
新手对STL容器的源码剖析。 首先为什么要做源码刨析?甚至我也有很大的疑问,会用就好。但是事实上看了源码会让你对各个算法的运用和容器有了更深的认识,并且我们阅读大师级的源码不也是一个成长的过程吗。 提示: 命名方式: _Insert_after 当下划线出现在首部时,变量作为函数内部使用。 首先工具推荐使用VS2017以上的版本。 接下来我们一步步的实现list。 首先list是个双向的链表 1.定义list.h 知识点: explicit关键字 explicit关键...原创 2022-03-09 16:09:06 · 929 阅读 · 0 评论 -
动态规划笔记
什么是动态规划? 动态规划(英语:Dynamic programming,简称 DP),是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题。来自维基百科。 简单的来说,动态规划就是将一个问题分解为若干个子问题,将子问题解决并保存,然后在解决大问题。也就是拆解问题,记住保存,减少重复的计算量。 其实leetcode的原题https://mp.youkuaiyun.com/mp_blog/cr原创 2022-01-26 14:02:11 · 134 阅读 · 0 评论 -
c++哈希表
在刷初级算法的字符串有好多关于哈希表的内容 所以作词笔记,强化哈希。 首先哈希表的作用是什么?它可以快速的查找。key-value值。 key值是唯一的。就例如一个统计某几人的身高。 如下是STL标准库map容器的实例。 map不允许容器中有重复key值元素 map<string, string> PersonMap; PersonMap["张三"] = "183"; PersonMap["张四"] = "186"; PersonMap["张五"] = "173"; PersonMap[原创 2021-12-31 13:07:31 · 1519 阅读 · 1 评论 -
Vector容器多维展示 c++
这是他们的定义方式。 一维:vector<int> A; 二维:vector<vector<int> > A; //c++11之后不会有vector<vector<int>> 空格错误 首先生成的东西不严谨的说是差不多的 二维数组嘛。 但是其初始化方式不一样 具体有两种初始化的方式。 方法1:A.resize(n,vector<int>(m)); 这是一次性就定义完整他的内外层大小 方法2:指定外层大小,...原创 2021-12-24 14:52:20 · 834 阅读 · 0 评论 -
深拷贝与浅拷贝的个人理解
浅拷贝:简单的赋值拷贝操作 深拷贝:在堆区重新申请空间,进行拷贝操作 编译器内自动帮你写的就是一个浅拷贝的操作。也就是如下的 class Test{ public: Test(const Test& p){ m_age = p.m_age; m_Height = p.m_Height;//这是编译器默认所生成的拷贝构造函数 } public: int m_age; int *m_Height; } 当然现在看不出来有什么不对。编译器所提供原创 2021-12-17 21:26:05 · 97 阅读 · 0 评论 -
指针常量和常量指针
const修饰常量 --- 指针常量 int * const p2 指针指向不可以改,指针指向的值可以更改 const修饰指针 --- 常量指针 const int * p1 指针指向可以改,指针指向的指向的值不可以改 const即修饰指针,又修饰常量 const int * const p3啥都不可以改 ...原创 2021-12-17 20:23:34 · 63 阅读 · 0 评论 -
c++笔记
传参!引用! //1. 值传递 void mySwap01(int a, int b) { int temp = a; a = b; b = temp; } //2. 地址传递 void mySwap02(int* a, int* b) { int temp = *a; *a = *b; *b = temp; } //3. 引用传递 void mySwap03(int& a, int& b) { int temp = a; a = b; b = temp; } i原创 2021-12-17 20:11:35 · 57 阅读 · 0 评论