摘要: ### stack 代码仓库:`https://github.com/sjz-hub/mystl` + stack是一种容器适配器,提供了一种简化和封装底层容器操作的方式,以便使用特定的数据结构和功能 + stack本身并没有什么需要特别编写的地方,主要实现了构造函数、top() pop() pus 阅读全文
posted @ 2023-07-05 20:53 白菜茄子 阅读(10) 评论(0) 推荐(0) 编辑
摘要: ### list 代码仓库:`https://github.com/sjz-hub/mystl` **简介** + list是列表,c++标准STL标准容器的一种 + 特点 + 双向链表结构 + 非连续存储 + 高效插入和删除:都是常数时间O(1) + 低效随机访问:需要按顺序遍历列表 **实现原理 阅读全文
posted @ 2023-07-04 22:23 白菜茄子 阅读(9) 评论(0) 推荐(0) 编辑
摘要: ### vector 代码仓库:`https://github.com/sjz-hub/mystl` **简介** + vector是向量,c++标准STL容器的一种 + 特点 + 顺序存储:容器元素严格按照线性顺序排序 + 随机访问:支持[]和at(),时间复杂度是O(1) + 动态添加删除:支持 阅读全文
posted @ 2023-07-04 22:02 白菜茄子 阅读(9) 评论(0) 推荐(0) 编辑
摘要: ### deque 代码仓库:`https://github.com/sjz-hub/mystl` **简介** + deque是双端队列,c++标准STL容器的一种 + 特点 + 双向访问:支持在队列的两端进行高效的插入和删除操作 + 内部插入:支持在内部进行插入和删除操作,但是性能不如list 阅读全文
posted @ 2023-07-04 21:16 白菜茄子 阅读(4) 评论(0) 推荐(0) 编辑
摘要: **概念** + 进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,是竞争计算机系统资源的基本单位 + 线程:是进程的一个执行单元,是进程内调度实体,比进程更小的独立运行的基本单位 **进程线程区别** + 地址空间:线程共享本进程的地址空间和资源,而进程之间是独立的地址空 阅读全文
posted @ 2023-06-13 12:03 白菜茄子 阅读(5) 评论(0) 推荐(0) 编辑
摘要: ### 智能指针 + 智能指针式为了解决手动管理动态分配内存的问题,使用RAII(资源获取即初始化)原则,通过在对象的构造函数中分配内存,并在对象的析构函数中释放内存,从而保证资源的正确释放,避免了内存泄漏 **std::unique_ptr** + 管理独占所有权的对象指针,保证在其周期结束时释放 阅读全文
posted @ 2023-06-13 10:25 白菜茄子 阅读(12) 评论(0) 推荐(0) 编辑
摘要: + 模板就是将类型进行参数化 #### 函数模板 ```c++ //函数模板的定义格式 template 返回值类型 函数名(参数列表){ 函数体; } ``` + 模板形参不能为空,并且函数模板中每一个类型参数在函数参数表中至少使用一次,只有这样才能推断出具体的类型 ```c++ template 阅读全文
posted @ 2023-06-09 11:42 白菜茄子 阅读(154) 评论(0) 推荐(2) 编辑
摘要: + explicit关键字用于修饰单参数构造函数(因为无参数构造函数和多参数构造函数总是显式调用,这种情况在构造函数前面加explicit毫无意义)和转换函数,用于禁止隐式类型转换 + 作用是防止编译器在某些情况下自动执行隐式类型转换,以提高代码的明确性和安全性 ```c+ class A{ pub 阅读全文
posted @ 2023-06-03 22:16 白菜茄子 阅读(8) 评论(0) 推荐(0) 编辑
摘要: + volatile是关键字,用来修饰变量 + 作用 + 禁止编译器对变量的优化 + 编译器在优化代码时,会对变量的读取和写入进行优化,例如将变量从内存加载到寄存器中进行操作,以提高执行效率,但是对于volatile修饰的变量,编译器不能进行这些优化,以确保对变量的每次读写操作都是直接从内存中进行的 阅读全文
posted @ 2023-06-03 22:10 白菜茄子 阅读(9) 评论(0) 推荐(0) 编辑
摘要: + 无法令引用重新绑定到另一个对象上,因此引用必须初始化,引用并非对象,只是为一个已经存在的对象所起的另外一个名字 + 因为引用本身不是一个对象,所以不能定义引用的引用 ```c++ int a = 10; int &b = a; int &c = b;//此时c不是引用的引用,而是b c 都是a的 阅读全文
posted @ 2023-06-03 21:07 白菜茄子 阅读(9) 评论(0) 推荐(0) 编辑
摘要: + 可以使用const的地方就尽量使用const + 一般引用的类型必须与其所引用对象的类型一致,但是允许一个常量引用绑定到非常量的对象、字面值,甚至是一个一般表达式 ```c++ double a = 42.0; int &b = a;//编译错误,一般引用类型需要与所引用对象类型一致 ``` ` 阅读全文
posted @ 2023-06-01 12:27 白菜茄子 阅读(23) 评论(0) 推荐(0) 编辑
摘要: **向上转型(上行转换)** + 派生类对象转换为基类对象(包括指针和对象),直接转换由编译器完成,是绝对安全的 + 内存里面:基类对象相当于只是换了个地址,换成了派生类中存储基类成员的内存地址,但是派生类对象中有的,基类没有的变量仍然存在内存中(保留了再次从基类转换成派生类的可能性) **向下转型 阅读全文
posted @ 2023-05-31 13:07 白菜茄子 阅读(30) 评论(0) 推荐(0) 编辑
摘要: + 内存对齐是一种提高内存访问速度的策略,CPU在访问未对齐的内存可能需要经过两次的内存访问,而经过内存对齐一次就可以了 ```c++ cout<<"char:"<<sizeof(char)<<endl; cout<<"int:"<<sizeof(int)<<endl; cout<<"short:" 阅读全文
posted @ 2023-05-30 12:03 白菜茄子 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 1627. 带阈值的图连通性 难度困难 有 n 座城市,编号从 1 到 n 。编号为 x 和 y 的两座城市直接连通的前提是: x 和 y 的公因数中,至少有一个 严格大于 某个阈值 threshold 。更正式地说,如果存在整数 z ,且满足以下所有条件,则编号 x 和 y 的城市之间有一条道路: 阅读全文
posted @ 2022-10-08 17:56 白菜茄子 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 面试题 17.21. 直方图的水量 难度困难 给定一个直方图(也称柱状图),假设有人从上面源源不断地倒水,最后直方图能存多少水量?直方图的宽度为 1。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的直方图,在这种情况下,可以接 6 个单位的水(蓝色部分表示水)。 感谢 Ma 阅读全文
posted @ 2022-09-26 20:18 白菜茄子 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 对齐原则: 第一个元素的偏移地址为0 每个成员变量都有一个自己的对齐数 对齐数等于该变量类型大小和默认对齐数的最小值,变量的起始地址是自己对齐数的整数倍 结构体总大小等于所有成员变量的最大对齐数的整数倍 32位系统默认对齐数为4,64位默认为8 可以使用#pragma pack(n)改变默认对齐数, 阅读全文
posted @ 2022-09-25 21:43 白菜茄子 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 1235. 规划兼职工作 难度困难 你打算利用空闲时间来做兼职工作赚些零花钱。 这里有 n 份兼职工作,每份工作预计从 startTime[i] 开始到 endTime[i] 结束,报酬为 profit[i]。 给你一份兼职工作表,包含开始时间 startTime,结束时间 endTime 和预计报 阅读全文
posted @ 2022-09-25 15:26 白菜茄子 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 1095. 山脉数组中查找目标值 难度困难 (这是一个 交互式问题 ) 给你一个 山脉数组 mountainArr,请你返回能够使得 mountainArr.get(index) 等于 target 最小 的下标 index 值。 如果不存在这样的下标 index,就请返回 -1。 何为山脉数组?如 阅读全文
posted @ 2022-09-24 19:19 白菜茄子 阅读(8) 评论(0) 推荐(0) 编辑
摘要: //arr数组升序 //n是数组长度,也就是l r正好是数组的左右的第一个和最后一个 int l = 0, r = n - 1; int mid; while(l <= r){ mid = (l + r) / 2; if(arr[mid] == target) return mid; else if 阅读全文
posted @ 2022-09-24 17:42 白菜茄子 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 1912. 设计电影租借系统 难度困难 你有一个电影租借公司和 n 个电影商店。你想要实现一个电影租借系统,它支持查询、预订和返还电影的操作。同时系统还能生成一份当前被借出电影的报告。 所有电影用二维整数数组 entries 表示,其中 entries[i] = [shopi, moviei, pr 阅读全文
posted @ 2022-09-23 21:08 白菜茄子 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 778. 水位上升的泳池中游泳 难度困难 在一个 n x n 的整数矩阵 grid 中,每一个方格的值 grid[i][j] 表示位置 (i, j) 的平台高度。 当开始下雨时,在时间为 t 时,水池中的水位为 t 。你可以从一个平台游向四周相邻的任意一个平台,但是前提是此时水位必须同时淹没这两个平 阅读全文
posted @ 2022-09-22 17:35 白菜茄子 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 1363. 形成三的最大倍数 难度困难 给你一个整数数组 digits,你可以通过按任意顺序连接其中某些数字来形成 3 的倍数,请你返回所能得到的最大的 3 的倍数。 由于答案可能不在整数数据类型范围内,请以字符串形式返回答案。 如果无法得到答案,请返回一个空字符串。 示例 1: 输入:digits 阅读全文
posted @ 2022-09-21 20:30 白菜茄子 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 2025. 分割数组的最多方案数 难度困难 给你一个下标从 0 开始且长度为 n 的整数数组 nums 。分割 数组 nums 的方案数定义为符合以下两个条件的 pivot 数目: 1 <= pivot < n nums[0] + nums[1] + ... + nums[pivot - 1] == 阅读全文
posted @ 2022-09-20 16:43 白菜茄子 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 在ImageNet上与训练过的用于图像分类的模型:VGG16, VGG19, ResNet50, InceptionV3, InceptionResNetV2, Xception, MobileNet, MobileNetV2, DenseNet, NASNet 是在ImageNet上1000个分类 阅读全文
posted @ 2022-03-03 22:07 白菜茄子 阅读(659) 评论(0) 推荐(0) 编辑
摘要: C:\Users\admin.keras,在电脑的这个文件夹中存在两个子文件夹,datasets是数据集,models是模型,我们可以将常见使内置用的数据集和模型参数放在两个文件夹中,可以不用运行下载了。 微调是冻结模型库的底部的卷积层,共同训练新添加的分类器层和顶部部分卷积层。底部的卷积层是一些通 阅读全文
posted @ 2022-03-03 22:05 白菜茄子 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 基础知识 预训练网络是一个保存好的之前已在大型数据集(大规模图像分类任务)上训练好的卷积神经网络。如果这个原始数据集足够大且足够通用,那么预训练网络学到的特征的空间层次结构可以作为有效的提取视觉世界特征的模型。即使新问题和新任务与原始任务完全不同,学习到的特征在不同问题之间是可移植的,这也是深度学习 阅读全文
posted @ 2022-03-03 17:59 白菜茄子 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 数据链接:https://pan.baidu.com/s/1-nLlW6Nng1pAvrxwEfHttA 提取码:vt8p 记得更改代码中的路径 点击查看代码 import tensorflow as tf from tensorflow import keras import matplotlib 阅读全文
posted @ 2022-03-03 17:57 白菜茄子 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 点击查看代码 import tensorflow as tf import datetime (train_image, train_labels), (test_image, test_labels)= tf.keras.datasets.mnist.load_data() train_image 阅读全文
posted @ 2022-03-03 17:55 白菜茄子 阅读(44) 评论(0) 推荐(0) 编辑
摘要: tensorboard通过读取tensorflow的事件文件来运行,tendorflow的事件文件包括了在tensorflow运行中涉及到的主要数据 点击查看代码 import tensorflow as tf import datetime import os (train_image,train 阅读全文
posted @ 2022-03-03 17:54 白菜茄子 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 变量与自动微分 点击查看代码 import tensorflow as tf v = tf.Variable(1.0) #创建变量 v.assign(5) #改变变量的值为5 v.assign_add(2) #对变量进行+操作 v.read_value() #读取变量的值 w = tf.Variab 阅读全文
posted @ 2022-03-03 17:48 白菜茄子 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 数据链接:https://pan.baidu.com/s/1zxa2KnkW5nFYFhF_bzfxkg 提取码:eii7 需要注意的是将里面所有的路径改成自己下载的数据所在的路径 from tensorflow import keras import tensorflow as tf import 阅读全文
posted @ 2022-03-03 17:43 白菜茄子 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 放一张最后的效果运行图 废话不多说,直接上可运行代码 # Author:孙建钊 # StartTime:2022/02/14 15:29 # EndTime: # content:使用python绘制一个冰墩墩 import turtle as t import math def numTwo(pr 阅读全文
posted @ 2022-03-03 14:42 白菜茄子 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 这里只需要注意cv2使用的都是BGR,而plt使用的都是RGB 阅读全文
posted @ 2022-02-12 11:54 白菜茄子 阅读(30) 评论(0) 推荐(0) 编辑
摘要: pandas基本介绍 numpy类似列表,那么pandas就类似于字典 import pandas as pd import numpy as np s = pd.Series([1,3,np.nan,44]) # 创建一个序列,没有给行命名,则默认为0 1 2 3 print(s) # 0 1.0 阅读全文
posted @ 2022-02-03 13:37 白菜茄子 阅读(35) 评论(0) 推荐(0) 编辑
摘要: numpy的属性 numpy是基于矩阵的运算 import numpy as np #将一个列表转换为矩阵 array = np.array([[1,2,3], [2,3,4]]) print(type(array)) # <class 'numpy.ndarray'> print(array.nd 阅读全文
posted @ 2022-02-02 13:29 白菜茄子 阅读(31) 评论(0) 推荐(0) 编辑
摘要: # 读取视频文件 cap = cv2.VideoCapture(path) while cap.read(): ret,im_rd=cap.read() #im_rd就是当前帧图片 if ret==False: break; #此时读到视频结尾 len(im_rd) #图片长 len(im_rd[0 阅读全文
posted @ 2022-02-02 13:21 白菜茄子 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 首先感谢 会飞的吴克 在B站中的教学视频,本篇博客只用于交流学习 在这里贴出参考教学视频的网址SIFT(尺度不变特征变换) 下面所有标红的部分都是目前暂时不是很理解的部分,等待后面有时间必须将这一部分了解透彻 SIFT过程 1建立高斯差分金字塔 图1 首先如图1所示,这是高斯金字塔。我们可以看到其是 阅读全文
posted @ 2022-01-08 22:27 白菜茄子 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 五 卫星图像识别 tf.data 卷积综合实例 二分类问题:飞机、湖泊 所有的数据都放在2_class文件夹下的两个文件夹airplane、lake 数据集百度网盘 链接:https://pan.baidu.com/s/1gBOIYvbyu_5p2fQrPy3U9A 提取码:91qk 运行代码(里面 阅读全文
posted @ 2021-11-25 20:12 白菜茄子 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 4.2卷积神经网络识别Fashion mnist数据集 点击查看代码 from tensorflow import keras import tensorflow as tf import matplotlib.pyplot as plt import numpy as np fashion_mni 阅读全文
posted @ 2021-11-25 15:09 白菜茄子 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 4.1 卷积神经网络 卷积神经网络主要应用于计算机视觉相关任务,但它能处理的任务并不局限于图像,在语音识别方面也是可以使用卷积神经网络 计算机可以通过寻找诸如边缘和曲线之类的低级特点来分类图片,继而通过一系列卷积层级建构除更为抽象的概念,这是CNN(卷积神经网络)工作方式的大体概述。 CNN工作概述 阅读全文
posted @ 2021-11-25 10:29 白菜茄子 阅读(80) 评论(0) 推荐(0) 编辑