自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 问答 (5)
  • 收藏
  • 关注

原创 用c++写一个socket和epoll网络编程的服务器

【代码】用c++写一个socket和epoll网络编程的服务器。

2023-07-21 16:01:00 188

原创 增量学习Contiual learning

下面是简单的EWC算法的代码,使用MNIST 数据集和USPS 数据集。

2023-04-09 17:15:08 1134

原创 数据库连接池项目总结

MySQL数据库编程、线程安全的懒汉单例模式、queue、C++11多线程编程、线程互斥、线程同步通信、生产者-消费者模型、基于CAS的原子整形、智能指针shared_ptr、lambda表达式等。ConnectionPool.h中定义了初始连接量、最大连接量、最大空闲时间、连接超时时间、连接池中连接的数量、以及数据库的配置信息(Mysql的IP地址、端口号等)Connection.cpp和Connection.h:数据库操作代码、增删改查代码实现。

2023-03-30 19:13:57 160

原创 【无标题】

Fisher信息矩阵在解决灾难性遗忘问题时起到了关键作用,因为它可以帮助我们了解哪些参数在之前的任务中扮演了重要角色,从而在学习新任务时对这些参数施加更大的约束。较大的Fisher信息值意味着参数在先前任务中的重要性较高,因此在学习新任务时应该施加更大的约束来防止对这些参数进行过度更新。最后,在训练新任务时,我们使用Fisher信息矩阵计算EWC惩罚项,该惩罚项与参数变化量的平方成正比。这个惩罚项会在训练过程中添加到原始损失函数中,从而减缓对关键参数的更新,保留在先前任务中学到的知识。

2023-03-27 17:18:48 1121

原创 人工智能杂乱知识

总之,图像识别主要关注于对整个图像进行分类,而目标识别关注于在图像中识别并定位特定的对象。目标识别可以看作是图像识别的一种扩展,因为它需要同时处理分类和定位任务。目标识别和图像识别是计算机视觉领域中两个相关但略有不同的概念。

2023-03-25 22:35:38 587 1

原创 PyTorch(自用)

第一个元素是一个形状为 (1, 28, 28) 的张量(Tensor),表示一个 28x28 像素的灰度图像,已经经过了预处理(转换为张量并归一化)。归一化操作将使得输入数据的分布接近均值为 0,标准差为 1 的正态分布,这有助于神经网络的训练。:一个整数,指定用于加载数据的子进程数。在这个过程中,图像的像素值将被归一化到 [0,1] 的范围。:这是一个 torch.utils.data.Dataset 类型的对象,包含了要加载的数据。获取数据的工具,它负责处理数据集的加载、划分和洗牌等操作。

2023-03-25 22:33:09 272

原创 Vector容器的实现

vector容器的实现

2022-10-25 15:58:49 178

原创 智能指针shared_ptr的实现

智能指针的实现

2022-10-15 14:29:04 229

原创 自用python基础

自用基础

2022-10-08 15:15:06 456

原创 2020寒假面试准备--数据结构

单调栈参考网址:https://blog.csdn.net/qq_43799957/article/details/105851767分类:单调递增栈就是从栈底到栈顶是从小到大单调递减栈就是从栈底到栈顶是从大到小模板:stack<int> s;for (遍历这个数组){ //重点需关注当前元素 //当判断是栈顶元素小于当前元素为单调递减栈,相反为单调递增栈 while (栈不为空 && 栈顶元素小于当前元素) { 栈顶元素出栈; 更新结

2020-08-13 00:23:29 161

原创 模板

模板1.1 函数模板语法1.2 函数模板注意事项C++另一种编程思想称为 泛型编程 ,主要利用的技术就是模板C++提供两种模板机制:函数模板和类模板1.1 函数模板语法函数模板作用:建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表。语法:template<typename T>//函数声明或定义template — 声明创建模板typename — 表面其后面的符号是一种数据类型,可以用class代替T — 通

2020-08-07 00:02:07 318

原创 多态

多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。多态其实可以用一句话概括:成员函数跟着类走,虚函数跟对象走父类指针调用无法调用子类同名方法看如下例子:#include<iostream>using namespace std;class A{public: void x(){ cout << "A" << endl; }};class B:public A{public:.

2020-08-05 22:52:46 160

原创 继承

面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行效率的效果。当创建一个类时,您不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可。这个已有的类称为基类,新建的类称为派生类。子类的访问权限父类中的权限\继承类型publicprotectedprivatepublic√√√protected√√√private××

2020-07-28 23:56:24 138

原创 Python知识汇总(参考菜鸟教程)

Python基础知识#单行注释''' 多行注释 '''#!/usr/bin/python print("Hello, World!") 关于脚本第一行的 #!/usr/bin/python 的解释,相信很多不熟悉 Linux 系统的同学需要普及这个知识,脚本语言的第一行,只对 Linux/Unix 用户适用,用来指定本脚本用什么解释器来执行。有这句的,加上执行权限后,可以直接用 ./ 执行,不然会出错,因为找不到 python 解释器。​ #!/usr/bin/python 是告诉操作系统

2020-07-07 21:49:47 301 1

原创 MySQL详解

MySQL常见命令mysql> create database db_name; -- 创建数据库mysql> show databases; -- 显示所有的数据库mysql> drop database db_name; -- 删除数据库mysql> use db_name; -- 选择数据库mysql> create table tb_name (字段名 varchar(20), 字段名 char(1));

2020-07-06 23:43:57 1023

原创 树状数组

树状数组是一个查询和修改复杂度都为log(n)的数据结构。主要用于查询任意两位之间的所有元素之和,但是每次只能修改一个元素的值;经过简单修改可以在log(n)的复杂度下进行范围修改,但是这时只能查询其中一个元素的值。查询操作(前缀和查询)经过推导最后得到的公式:S[i]= S[i-lowbit(i)] + C[i]其中S[i]是前i项的和,lowbit(i)代表i这个数字,二进制表示的最后一位1的位权,lowbit(x) = x & (-x)。C[i]代表i项的前lowbit(i)项的和(含第

2020-05-27 00:36:14 215 1

原创 链表相关题目详解

链表相关特点:无法高效获取长度,无法根据偏移快速访问元素。根据链表的特点衍生出一系列问题:判断环的长度等和长度与位置有关的问题,获取倒数第k个元素,获取中间位置的元素,判断链表是否存在环。这些问题都可以通过灵活运用双指针来解决。一、判断链表是否有环141. 环形链表思路:现在考虑一个环形链表,把慢指针和快指针想象成两个在环形赛道上跑步的运动员(分别称之为慢跑者与快跑者)。而快跑者最终一定会追上慢跑者。这是为什么呢?考虑下面这种情况(记作情况 A)- 假如快跑者只落后慢跑者一步,在下一次迭代中,它们就

2020-05-23 23:52:49 237

原创 回溯算法

Leetcode46. 全排列class Solution {public: vector<vector<int>> ans; void func(vector<int> &nums,vector<int> &vec,vector<bool>& choice){ if(vec.size() == choice.size()){ ans.push_back(vec)

2020-05-21 00:22:27 190

原创 STL详解

set/multiset容器set基本概念简介:所有元素都会在插入时自动排序本质:set/multiset属于并联式容器,底层结构是用红黑树实现的set和multiset区别set不允许容器中有重复的元素multiset允许容器中有重复的元素set构造和赋值功能描述:创建set容器以及赋值构造:set<T> st; //默认构造函数:set(const set &st); //拷贝构造函数赋值:

2020-05-19 15:06:02 255 1

原创 动态规划(详解)

动态规划一般可分为线性动规,区域动规,树形动规,背包动规四类。背包问题:01背包问题,完全背包问题,分组背包问题,二维背包等背包问题0/1背包:0-1背包问题指的是每个物品只能使用一次题目描述给一个能承重V的背包,和n件物品,我们用重量和价值的二元组来表示一个物品,第i件物品表示为(Vi,Wi),问:在背包不超重的情况下,得到物品的最大价值是多少?输入第一行输入两个数 V,n...

2020-05-07 00:10:40 1745 2

原创 单调队列和单调栈(通俗易懂)

单调队列单调队列顾名思义就是具有单调性的队列,其中单调性可以单调递增也可以单调递减,并且。队首和队尾可以进行出队操作,队尾可以进行入队操作。队首元素维护的是区间的最大值或最小值单调队列的形象比喻假如某高校ACM校队每年只有一个名额去参加比赛,所以只能选出能力最强的人去参加,因为该校只有大三及其以下能够参加该比赛,所以超过该限制的人将会被淘汰。现该队有三名队员分别是张三(年级:大三,能力:9)...

2020-04-30 00:31:23 2185

原创 二分答案

二分答案献上题目原木切割题目描述​ 某林业局现在 N 根原木,长度分别为 Xi,为了便于运输,需要将他们切割成长度相等的 M 根小段原木(只能切割成整数长度,可以有剩余),小段原木的长度越大越好,现求小段原木的最大长度。例如,有 3 根原木长度分别为 6,15,22,现在需要切成 8 段,那么最大长度为 5。输入​ 第一行两个整数 N,M。(1≤N≤100,000,1...

2020-04-27 22:45:20 313

原创 C++ Primer Plus 读书笔记

运算符重载文章注意事项及总结首先,在重载最简单的加号+运算符或减号-运算符时,返回值类型要和所需重载类型一致(此处不返回引用),可以采用类内重载和类外重载两种方式。在重载左移<<或重载右移>>运算符时,只能采用类外重载,并且需要返回ostream类型的引用,从而才能实现类似cout << people << endl;的连续输出。其次在重载递增...

2020-04-20 00:57:01 427 1

原创 每日三题(6)

153. 寻找旋转排序数组中的最小值class Solution {public: int findMin(vector<int>& nums) { int l = 0, r = nums.size() - 1; if(nums[0] > nums[r]){ while(l != r){ ...

2020-04-10 23:08:33 108 1

原创 二分法

基本思想算法:当数据量很大适宜采用该方法。采用二分法查找时,数据需是排好序的。基本思想:假设数据是按升序排序的,对于给定值key,从序列的中间位置k开始比较,如果当前位置arr[k]值等于key,则查找成功;若key小于当前位置值arr[k],则在数列的前半段中查找,arr[low,mid-1];若key大于当前位置值arr[k],则在数列的后半段中继续查找arr[mid+1,high]...

2020-04-10 21:25:15 266

原创 线程的基本概念和相关函数

线程的基本概念和相关函数pthread_self函数头文件:#include <pthread.h>函数原型:pthread_t pthread_self(void);功能:获得线程自身的ID。返回值:pthread_t的类型为unsigned long int,所以在打印的时候要使用%lu方式pthread_create函数头文件:#include<p...

2020-04-09 00:35:48 166

原创 UNIX环境高级编程读书笔记

第1章UNIX基础知识每个程序都会有唯一的数字标识符,称为进程ID,进程ID总是一个非负整数getpid会返回一个pid_t的数据类型,pid_t最大数据范围是长整型fork对父进程返回新的子进程的ID(一个非负整数),对子进程返回0.因为fork创建一个进程,所以说它被调用一次,但返回两次(分别在父子进程中)与进程相同,线程也用ID表示,但线程ID只在它所属的线程内起作用。一个进程中的线...

2020-04-07 23:29:03 388 2

原创 DFS(深搜)和BFS(广搜)

DFS(深搜)和BFS(广搜)DFS深度优先搜索属于图算法的一种,英文缩写为DFS即Depth First Search.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次.举例说明:上图是无向图,从A节点开始进行深度优先搜索(以下的访问次序并不是唯一的,第二个点既可以是B也可以是C,D),则我们可能得到如下的一个访问过程:A->B->E(...

2020-04-07 01:28:28 1248

原创 Linxu文件相关操作函数

stat函数头文件 #include <sys/types.h> #include <sys/stat.h>#include <unistd.h>原型int stat(const char *pathname, struct stat *statbuf);int fstat(int fd, struct stat *statbuf);int l...

2020-04-03 20:31:22 107

原创 每日三题(5)

240.图形打印四#include <iostream>using namespace std;char str[2200][2200];int num[10] = {0, 1, 3, 9, 27, 81, 243, 729, 2187};void func(int x,int y, int n){ if(n == 1){ str[x][y] = '...

2020-04-02 01:12:12 104

原创 每日三题(4)

Leetcode112.路径总和/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) ...

2020-03-31 23:17:42 153

原创 进程基本概念及相关函数

进程基本概念及相关函数进程定义fork函数exec函数族wait函数waitpid函数进程定义从不同角度,进程可以有不同定义:1.进程是程序的一次执行过程2.进程是一个程序及其数据在处理机上顺序执行时所发生的活动。3.进程是具有独立功能的程序在数据集合上的运行过程,它是系统进行资源分配和调度的一个独立单元fork函数头文件:#include <sys/types.h>...

2020-03-30 21:46:20 1435 7

原创 Linxu目录操作相关函数(详解)

目录操作函数chdir函数getcwd函数mkdir函数rmdir函数opendir函数readdir函数closedir函数chdir函数//头文件 #include <unistd.h>//原型int chdir(const char *path); int fchdir(int fd);//功能:chdir函数用于改变当前工作目录。//返回值: 如果返回0, 代表...

2020-03-30 01:39:40 1034 7

原创 Linxu系统调用函数---read函数 write函数 lseek函数(详解)

read函数//头文件#include <unistd.h>//原型 ssize_t read(int fd, void *buf, size_t count);//功能:read()会把参数fd所指的文件传送count 个字节到buf 指针所指的内存中。/*返回值:返回值为实际读取到的字节数, 如果返回0, 表示已到达文件尾或是无可读取的数据。如果返回-1代表读取不成功...

2020-03-29 23:05:18 1462 8

原创 Linxu中的系统调用函数---open函数(详解)

下面是man手册的章节号我们可以通过man手册来查询系统函数man 2 openopen函数//头文件: #include<fcntl.h> #include<sys/types.h> #incldue<sys/stat.h>//功能:打开和创建文件(建立一个文件描述符,其他的函数可以通过文 件描述符对指定文件...

2020-03-29 13:48:08 2348 4

原创 每日刷题(3)

题目Leetcode108.将有序数组转化为二叉搜索树/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), ...

2020-03-29 00:36:28 341 2

原创 每日三题(2)

题目Leetcode103.二叉树的锯齿型层次遍历错误代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL...

2020-03-27 18:56:56 252 2

原创 每日三题(1)

题目Leetcode100.相同的树/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NUL...

2020-03-27 01:13:53 327 2

原创 C++运算符重载(通俗易懂)

运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。你可以重定义或重载大部分 C++ 内置的运算符。例如 + 、 - 、 * 、 / 、++、–、>>、<<等,这样,你就能使用自定义类型的运算符。运算符重载的基本格式重载的运算符是带有特殊名称的函数,函数名是由关键字 operator 和其后要重载的运算符符号构成的。与其他函数一样,...

2020-03-21 10:03:46 693 2

原创 C++中static与const区别

const关键字const关键字可以修饰变量、对象、函数等​ const aa是变量 加const后是常量​ const piont apoint是类 a是对象​ int x() constx()函数const对象的成员变量不允许被改变。const对象只能调用const成员函数,而非const对象可以访问const成员函数举例说明:#include ...

2020-03-18 13:17:31 324

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除